litellm 被投毒:一次教科书级的供应链攻击

今天,AI 开源圈发生了一件大事——Karpathy 亲自发推警告的那种。Python 圈最常用的 LLM 调用库 litellm,在 PyPI 上被植入恶意代码,4 万星、每月 9500 万次下载的庞然大物,一夜之间成了潜伏在你服务器里的定时炸弹。

litellm 是什么?

它是 AI 开发者圈子里几乎人手一个的 Python 库——统一调用 100+ 大模型 API,GitHub 超过 4 万星,被 DSPy、MLflow、Open Interpreter 等 2000+ 工具当作依赖项。你可能从来没手动装过,但你用的某个工具替你装了。

攻击是怎么发生的?

3 月 24 日,litellm 1.82.8 发布到 PyPI,内含一个恶意的 litellm_init.pth 文件。每次 Python 进程启动它都会自动执行,不需要你主动调用——装上就中招。

恶意代码会系统性收集主机敏感数据:SSH 密钥、AWS/GCP/Azure 云凭证、Kubernetes 密钥、环境变量文件、数据库配置,甚至加密货币钱包。收集完毕后加密打包,发送到攻击者控制的域名。如果检测到 Kubernetes 环境,还会利用服务账户令牌在每个节点上部署特权 Pod 横向扩散。

讽刺的发现过程

攻击者自己写了个 bug——恶意 .pth 文件在每次 Python 启动时触发,子进程又触发同一个 .pth,形成指数级 fork bomb,直接把机器内存撑爆。FutureSearch 的工程师 Callum McMahon 在 Cursor 里用 MCP 插件时偶然触发,才发现了这次投毒。

Karpathy 说:如果攻击者没写这个 bug,这个投毒可能好几天甚至好几周都不会被发现。

攻击链:安全工具反成突破口

根源在于 litellm 的 CI/CD 流程使用了 Trivy 漏洞扫描工具,而 Trivy 在 3 月 19 日已经被攻击组织 TeamPCP 攻陷。攻击者通过被污染的 Trivy 窃取 litellm 的 PyPI 发布令牌,直接推送了带毒版本。3月19日攻陷 Trivy → 3月23日攻陷 Checkmarx KICS → 3月24日 litellm 被投毒,开源供应链正在形成连锁崩塌。

你应该怎么做?

立刻运行 pip show litellm 检查版本。1.82.6 是最后一个干净版本。如果不幸装了 1.82.7 或 1.82.8,假设所有凭证已泄露,立即轮换。

这次事件再次印证了 Karpathy 的警告:供应链攻击是现代软件最可怕的威胁,每次安装依赖,都可能在依赖树深处引入一个被投毒的包。

相关链接:

GitHub:https://github.com/BerriAI/litellm


GitHub: https://github.com/BerriAI/litellm

评论区

0 条评论

登录后可评论。

陈一铭 15 阅读