首页/文章/网关日志里躺着 GitHub token:LiteLLM 投毒事件给 Claude Code 用户的三条教训

网关日志里躺着 GitHub token:LiteLLM 投毒事件给 Claude Code 用户的三条教训

· Zumac.Ai

发生了什么

@shaoxiao_si 和 @Joshua_WD 都在第一时间提醒:常被用来统一调用各家模型的 Python 库 LiteLLM,10 月 21 日发布了被投毒的 1.107.0 版本,在 PyPI 上存在约 100 分钟,Docker 的 latest 等标签也一度指向恶意镜像。官方 事故报告 给出的安全版本是 1.106.2,装过 1.107.0 的环境要按「已失陷」处理并轮换凭据。

@WaleatX 关注的是报告里和 Claude Code 用户直接相关的一段:攻击者是怎么拿到发布权限的。

报告里的攻击链

按 LiteLLM 报告的说法(调查仍在进行,部分细节待确认):

  1. 他们观察到在特定情况下,Claude Code 会把用户的 GitHub CLI OAuth token 写进响应体;如果网关记录了响应体,token 就会出现在 LiteLLM 日志里。
  2. 他们的一台内部 LiteLLM 部署暴露在公网,里面多了一个名字不起眼的陌生账号,怀疑是通过一个最近修补的漏洞进来的。
  3. 攻击者从日志中取走了三名工程师的 gh token,其中一个属于 GitHub 组织 owner,于是关掉分支保护、强推修改,让发布流程从一个仿冒仓库构建并发布。

这里要分清:「Claude Code 把 token 带进响应」是 LiteLLM 方面的调查结论,具体触发条件报告没有展开;但不管原因是什么,「完整日志 + 公网可达」这个组合本身就是风险。

走网关的 Claude Code 用户该检查什么

  1. 网关别记录完整请求和响应体。 agent 的对话里会混进命令输出、配置片段和各种凭据。只记元数据(时间、模型、token 数、状态码),需要排障时临时开、用完关。Claude Code 自己的遥测也一样:官方文档说明 OTEL_LOG_RAW_API_BODIES 会导出完整对话,默认关闭,别随手打开。
  2. 网关和日志系统不要暴露在公网,账号列表定期过一遍,陌生账号立即排查。
  3. 本机的 gh 登录按最小权限给。 日常开发用的机器别长期挂着组织 owner 级别的 token;能用细粒度、限仓库、短有效期的 token 就别用全权 token。怀疑泄露时,在 GitHub 的应用授权页撤销后重新登录。
  4. 依赖固定版本。 别在生产里用 latest 或不锁版本的 pip install;这次正是不锁版本的环境中招。

小结

agent 时代的日志不再只是「调试信息」,它可能包含 agent 碰过的所有东西。把日志当成和密钥同等级的资产来管,比事后轮换更省事。

如果你想把 Claude Code 放在一台常开、整机独享的新加坡 Mac mini 上长期运行,可以了解 Zumac.Ai,咨询 Telegram @singatao。

来源

Zumac.Ai 新加坡 Mac mini M6,整机独享,¥999/月起,联系 Telegram @singatao。
查看方案与费用 · 帮助中心

返回首页 · 更多文章

Telegram 客服