LiteLLM 1.107.0 遭投毒:安装即窃取云与 AI 工具凭据
多家安全厂商报告,常用的 LLM 网关库 LiteLLM 在 PyPI 上发布的 1.107.0 版本被植入恶意代码。StepSecurity 分析显示,7 个平台的 wheel 包会向 site-packages 写入 cook.pth、cook.py 和 sitecustomize.py,每次启动 Python 解释器都会运行窃密程序,无需 import litellm;该版本已于当天从 PyPI 移除。
要点
- 窃取范围包括云凭据、SSH/GPG 密钥、浏览器密码、各类包仓库与 CI 令牌,以及 Claude Code、Cursor、Codex 等 AI 编程工具的凭据
- 设置了 DATABASE_URL 的 LiteLLM 代理主机上,数据库中的模型供应商 API key 和模型配置也会被读取
- 另有后台进程每小时检查一个 GitHub 文件,拿到主机名后下载并执行远程代码
- StepSecurity 建议固定到 litellm==1.106.2、删除上述文件、轮换受影响主机可访问的全部凭据,并封禁 litellm.dev;Datadog 称容器镜像仓库也出现了恶意版本
为什么值得关注
LiteLLM 常被部署为集中管理各家模型 API key 的网关,一次投毒可能同时泄露整个团队的模型密钥。依赖未锁版本、10 月 21 日装过新版的环境都应立即排查。
配套实验
已验证
检查 3/3 通过
GitHub Actions 实际运行 · Python 3.12.15 · 耗时 0.1s
排查 site-packages 里会在 Python 启动时执行的代码
受 LiteLLM 1.107.0 投毒事件启发,用 Python 标准库扫描 site-packages 中 .pth 的 import 行、sitecustomize.py 等启动钩子,并比对公开 IoC 文件名与哈希,验证能区分正常路径 .pth、合法但会执行代码的 .pth 和与 IoC 一致的文件。
结论3/3 样例环境分类正确
[PASS] clean CRITICAL=0 (期望 0) REVIEW=0 (期望 0) [PASS] tooling CRITICAL=0 (期望 0) REVIEW=1 (期望 1) REVIEW distutils-precedence.pth:1 启动时会执行的 import 行:import os; var = 'SETUPTOOLS_USE_DISTUTILS'; enabled = os.en [PASS] poisoned CRITICAL=2 (期望 2) REVIEW=2 (期望 2) CRITICAL cook.pth 哈希与已知恶意文件 cook.pth 一致 CRITICAL cook.py 文件名与 LiteLLM 投毒事件公开 IoC 一致 REVIEW distutils-precedence.pth:1 启动时会执行的 import 行:import os; var = 'SETUPTOOLS_USE_DISTUTILS'; enabled = os.en REVIEW sitecustomize.py site-packages 中的启动模块,每次启动解释器都会执行 当前解释器 3.12.15 的 site-packages 扫描(仅供参考): /tmp/exp-isjria1y/venv/lib/python3.12/site-packages: CRITICAL=0 REVIEW=0 RESULT: 3/3 样例环境分类正确
python main.py
查看代码与内网复现步骤 →
来源
原文
litellm 1.107.0 Compromised on PyPI: Backdoored Wheels Drop a Credential Stealer and an Hourly Remote Code Loader
StepSecurity · stepsecurity.io · 2026-10-21
报道
LiteLLM supply chain compromise: What you need to know
Datadog Security Labs · securitylabs.datadoghq.com · 2026-10-21
### [LiteLLM 1.107.0 遭投毒:安装即窃取云与 AI 工具凭据]({{URL}})
多家安全厂商报告,常用的 LLM 网关库 LiteLLM 在 PyPI 上发布的 1.107.0 版本被植入恶意代码。StepSecurity 分析显示,7 个平台的 wheel 包会向 site-packages 写入 cook.pth、cook.py 和 sitecustomize.py,每次启动 Python 解释器都会运行窃密程序,无需 import litellm;该版本已于当天从 PyPI 移除。
- 窃取范围包括云凭据、SSH/GPG 密钥、浏览器密码、各类包仓库与 CI 令牌,以及 Claude Code、Cursor、Codex 等 AI 编程工具的凭据
- 设置了 DATABASE_URL 的 LiteLLM 代理主机上,数据库中的模型供应商 API key 和模型配置也会被读取
- 另有后台进程每小时检查一个 GitHub 文件,拿到主机名后下载并执行远程代码
- StepSecurity 建议固定到 litellm==1.106.2、删除上述文件、轮换受影响主机可访问的全部凭据,并封禁 litellm.dev;Datadog 称容器镜像仓库也出现了恶意版本
**为什么值得关注**:LiteLLM 常被部署为集中管理各家模型 API key 的网关,一次投毒可能同时泄露整个团队的模型密钥。依赖未锁版本、10 月 21 日装过新版的环境都应立即排查。
来源:[litellm 1.107.0 Compromised on PyPI: Backdoored Wheels Drop a Credential Stealer and an Hourly Remote Code Loader](https://www.stepsecurity.io/blog/litellm-1-107-0-compromised-pypi-backdoored-wheels-credential-stealer);[LiteLLM supply chain compromise: What you need to know](https://securitylabs.datadoghq.com/articles/litellm-compromised-pypi-docker/)