【供应链高危预警】PyPI LiteLLM 1.107.0 投毒,.pth 持久化窃取密钥 + 定时RCE
预警时间:2026-10-21
事件:PyPI Supply Chain Attack — LiteLLM 1.107.0 Package Poisoning
风险等级:严重高危
参考来源:JFrog Security Research、StepSecurity、SafeDep 威胁分析报告
事件概述
LiteLLM 是广泛使用的 LLM 网关代理,用于统一对接上百家大模型服务商,在开发者、AI 项目、CI/CD 流水线、AI 生产网关中大量部署。
10月21日安全研究团队披露:PyPI 上发布的 litellm==1.107.0 的全部7个 wheel 二进制包被投毒,源码压缩包(sdist)不含恶意文件,只检查源码/Git tag 的审计会直接漏过该威胁。
恶意 wheel 包释放3个文件到 site-packages :
- cook.pth :Python 启动自动加载钩子
- cook.py :凭证窃取程序(InfoStealer)
- sitecustomize.py :后台常驻守护,定时拉取远程代码执行
核心特性:不需要 import litellm,只要启动任意 Python 解释器,恶意载荷就自动运行。
攻击链路与危害
1. 凭证窃取(cook.py)
窃取范围:环境变量、SSH密钥、云服务商凭证、CI/CD secret、浏览器保存密码、LiteLLM 内部数据库里全部 LLM API Key(OpenAI、Anthropic、DeepSeek、Azure 等),加密后回传攻击者控制域名 www.litellm.dev 。
API Key 泄露会直接造成盗刷、高额账单、业务数据泄露。
2. 定时远程代码执行 RCE(sitecustomize.py)
植入后台常驻进程,每小时一次从攻击者指定地址加载并执行任意代码;支持后续横向渗透、植入更多后门、持久化控制主机。锁文件标记: /tmp/remote_code_loader.lock 。
3. 隐蔽性极强
.pth 是 Python 原生加载机制,很多依赖扫描工具默认不检测;且仅在 wheel 里投毒,源码干净,常规代码评审失效。
4. 扩散风险高
开发机、本地笔记本、Docker 镜像、CI 构建机只要装过这个版本,镜像、流水线会批量带毒,上线后污染生产环境。
补充背景:这是 LiteLLM 在2026年内第二次发生 PyPI 账号劫持投毒事件(3月曾出现 litellm_init.pth 投毒)
受影响范围
✅ 受影响: litellm==1.107.0 ,所有平台 wheel(Linux / musl / macOS / Windows)
❌ 不受影响:同版本 source sdist 源码包、其他版本(1.106.2 等)
IOC 入侵指标
恶意文件:
- site-packages/cook.pth
- site-packages/cook.py
- site-packages/sitecustomize.py
运行标记文件:
- /tmp/remote_code_loader.lock
恶意外发域名:
- www.litellm.dev
紧急处置步骤
- 批量排查所有环境(开发机、服务器、CI、容器)
bash
查看已安装版本
pip list | grep litellm
pip freeze | grep litellm
查找恶意pth文件
find /usr/local/lib/python -name "cook.pth"
find ~/.local/lib/python -name "cook.pth"
- 隔离、查杀载荷
一旦发现存在 1.107.0 wheel,判定主机已被攻陷:
1. 先隔离主机,断开外网;
2. 停止远程加载进程:查找持有 /tmp/remote_code_loader.lock 的进程并 kill;
3. 卸载包,并且手动核验删除三个恶意文件(部分情况下卸载脚本清理不全)
bash
pip uninstall litellm -y
rm -f site-packages/cook.pth site-packages/cook.py site-packages/sitecustomize.py
rm -f /tmp/remote_code_loader.lock
- 【最高优先级:全部密钥轮换】
只要安装过该 wheel,默认所有密钥已经外泄:
- 所有 LLM 平台 API Key 立即重置
- SSH密钥、云账号AK/SK、数据库密码、Redis密码、Webhook Token、CI密钥全部轮换
- 恢复安全版本
回退至可信版本,例如 litellm==1.106.2 ,锁定版本号,禁止无限制拉取 latest:
bash
pip install litellm==1.106.2
等待官方后续公告确认安全新版本。
长期加固建议
1. 区分 sdist / wheel 风险:二进制 wheel 是供应链投毒高频载体,不能只审计源码;
2. CI/CD 流水线使用依赖锁定(requirements.txt / pyproject.toml + hash 校验),开启 pip hash 校验;
3. 接入供应链扫描:Snyk、Safety、chaincanary(专门检测 .pth 恶意钩子);
4. 构建/CI 环境遵循最小权限,禁止存放生产密钥;
5. 网络侧监控出站访问 www.litellm.dev 等陌生恶意域名;
6. 私有 PyPI 镜像做包准入校验,不直接裸拉公网 PyPI wheel。
总结
本次攻击的狡猾之处在于源码干净、只污染二进制wheel,依靠 .pth 实现无差别自启动,哪怕你的业务代码从来没有 import litellm,环境依然中招。大量AI网关、Agent、本地开发脚本、自动化流水线在使用 LiteLLM,波及面极大。
请运维、AI开发团队立刻全环境扫描,优先轮换密钥,避免盗刷与服务器失陷。




