2026 年 3 月 24 日,一个令人不安的安全事件在 Hacker News 上引发 442 分和 363 条评论:Litellm 1.82.7 和 1.82.8 版本在 PyPI 上被篡改,包含恶意代码。

Litellm 是一个流行的 LLM 服务统一接口库,被广泛用于协调不同 AI 服务提供商的 API 调用。这次攻击利用了 Python 的.pth 文件机制——这些文件在 Python 解释器启动时自动执行,无需任何 import 语句。

攻击细节

恶意文件 litellm_init.pth(34,628 字节)被植入到 wheel 包中。它的双层 base64 编码载荷执行以下操作:

第一阶段:信息收集

  • 系统信息:主机名、用户、内核版本、IP 地址
  • 环境变量:所有 API 密钥、秘密、令牌
  • SSH 密钥:所有类型的私钥和配置
  • Git 凭据:配置和凭证文件
  • 云凭证:AWS、GCP、Azure、Kubernetes
  • Docker 配置:各种路径的 Docker 配置
  • 包管理器配置:npmrc、.netrc 等
  • Shell 历史:bash、zsh、sh 历史
  • 加密货币钱包:Bitcoin、Ethereum、Solana 等
  • SSL/TLS 私钥:系统证书、Let's Encrypt 证书
  • CI/CD 秘密:Terraform、GitLab CI、Travis、Jenkins 等
  • 数据库凭据:PostgreSQL、MySQL、Redis 配置
  • Webhook URL:Slack、Discord webhook

第二阶段:加密和窃取

  • 收集的数据写入临时文件
  • 生成随机 32 字节 AES-256 会话密钥
  • 数据用 AES-256-CBC 加密
  • 会话密钥用硬编码的 4096 位 RSA 公钥加密
  • 打包成 tpcp.tar.gz
  • 通过 curl 发送到 https://models.litellm.cloud/(注意:不是官方域名 litellm.ai)

影响范围

任何通过 pip 安装 litellm==1.82.8 的人都已经将所有环境变量、SSH 密钥、云凭证和其他秘密发送到攻击者控制的服务器。这影响:

  • 本地开发机器
  • CI/CD 管道
  • Docker 容器
  • 生产服务器

为什么这次攻击特别危险

基础设施位置:Litellm 位于 AI 基础设施的核心——它处理 API 密钥、协调模型调用、管理认证。攻击者可以访问所有通过 Litellm 管理的密钥。

隐蔽性:.pth 文件在 Python 启动时自动执行,无需任何 import。载荷是双层 base64 编码,对简单的 grep 不可见。

信任滥用:窃取的目标是 models.litellm.cloud——一个看起来合法的域名,但不是官方域名。

影响范围:Litellm 被广泛用于生产环境,影响可能远超普通库。

供应链攻击的演变

这次攻击是供应链攻击演变的又一个例子。从 SolarWinds 到 Log4j 到这次 Litellm,攻击者越来越倾向于攻击基础设施层,因为:

  1. 杠杆效应:一个库被攻击,所有依赖者都受影响
  2. 信任传递:开发者信任 PyPI、信任流行库、信任维护者
  3. 检测困难:攻击代码在库内部,不在应用代码中

应对措施

立即措施

  • 卸载 litellm 1.82.7 和 1.82.8
  • 检查 site-packages 中是否存在 litellm_init.pth
  • 轮换所有可能暴露的凭证
  • 检查 CI/CD 管道
  • 监控异常网络流量到 models.litellm.cloud

长期措施

  • 使用依赖扫描工具
  • 考虑使用依赖代理或镜像
  • 对关键库进行源代码验证
  • 最小化权限原则
  • 定期轮换凭证

更广泛的含义

这次攻击揭示了 AI 基础设施的脆弱性。AI 生态系统依赖于大量开源库,这些库构成了信任链。当其中一个被破坏时,整个链都受影响。

同时,这次攻击也反映了 AI 领域的吸引力——攻击者瞄准 AI 基础设施,因为这里有价值:API 密钥、模型访问、数据。

结语

Litellm 供应链攻击是一个警示:在 AI 时代,基础设施安全变得更加重要。我们依赖的库越多,攻击面就越大。

这次攻击不是孤立事件——它是 AI 基础设施成为目标的一部分。随着 AI 生态系统的增长,我们需要更强大的供应链安全措施。