3月24日,AI 开源生态突发重大安全事件。知名 Python 库 litellm 在 PyPI 平台被植入恶意代码,构成一次典型的供应链攻击。攻击无需主动调用,只要安装该库即可触发,影响范围极广。

事件核心:litellm 被植入自动执行后门

本次受影响版本为1.82.8(UTC 时间10:52发布),其中包含名为litellm_init.pth的恶意文件。该文件会在每次 Python 进程启动时自动加载并执行。即使开发者从未手动 import litellm,只要项目间接依赖该库,就会立即中招。紧随其后的1.82.7版本(UTC10:39发布)同样被污染。

image.png

litellm 为何成为高价值目标?

litellm 是一款统一调用多家大模型 API 的 Python 库,在 GitHub 拥有超过4万星标,每月下载量高达9500万次。目前已有超过2000个开源包将其列为依赖,包括 DSPy、MLflow、Open Interpreter 等主流 AI 工具链。大量开发者可能从未主动安装,却已在不知情中引入这一风险点。

恶意代码行为:系统性窃取敏感凭证

恶意载荷会全面扫描并窃取主机敏感信息,包括:

  • SSH 密钥
  • AWS/GCP/Azure 云凭证
  • Kubernetes 密钥
  • 环境变量文件
  • 数据库配置
  • 加密货币钱包

数据被加密打包后,发送至攻击者控制的域名。若检测到 Kubernetes 环境,恶意代码还会利用服务账户令牌,在集群各节点自动部署特权 Pod,实现横向扩散,威胁进一步放大。

发现过程极具讽刺:攻击者“bug”自曝

攻击暴露源于一个意外的 fork bomb。研究者在 Cursor 编辑器中使用 MCP 插件时,因插件间接依赖 litellm,恶意.pth 文件在 Python 子进程中反复触发,导致内存瞬间耗尽。这一“自爆”让事件迅速曝光。知名 AI 专家 Andre Karpathy 指出,若非攻击者代码中的这一疏忽,该投毒可能潜伏数天甚至数周而不被察觉。

攻击链溯源:Trivy 成供应链崩塌起点

根源直指 litellm 的 CI/CD 流程——其使用了 Trivy 漏洞扫描工具。而 Trivy 早在3月19日已被同一攻击组织 TeamPCP 攻陷。攻击者通过污染后的 Trivy 窃取 litellm PyPI 发布令牌,直接推送恶意版本。此前3月23日,Checkmarx KICS 也遭同一组织攻击。安全研究员 Gal Nagli 评价称:开源供应链已形成连锁崩塌,Trivy 被攻破直接导致 litellm 沦陷,数万个生产环境的凭证落入攻击者手中,并将成为后续攻击的新弹药。

攻击者“灭口”行动失败

GitHub 上首批 issue 报告出现后,攻击者在102秒内动用73个被盗账号发布88条垃圾评论,试图淹没讨论,随后利用被盗维护者权限强行关闭 issue。社区迅速转移讨论至 Hacker News 平台,继续追踪事件。

专家观点:供应链攻击是最可怕的隐形威胁

Karpathy 借此事件再次强调软件依赖风险:“每次引入一个外部包,都可能在依赖树深处埋下被投毒的定时炸弹。”他表示,未来将更倾向于让大模型直接生成简单功能代码,而非依赖第三方库。

紧急安全建议

提醒所有 AI 开发者:

  1. 立即执行pip show litellm检查版本,最后一个安全版本为1.82.6;
  2. 若发现1.82.7或1.82.8,视为所有凭证已泄露,立即全量轮换 SSH 密钥、云凭证、K8s 令牌等;
  3. 清理受影响环境,重建容器或虚拟机,并加强供应链审计。

此次事件再次敲响开源供应链安全的警钟。在 AI 工具链高度依赖第三方库的今天,每一次依赖引入都需保持最高警惕。