LiteLLM 1.107.0 遭供应链投毒:恶意代码借 Python 启动钩子运行,不用 import 也会窃取凭据
Microsoft 拆解了 10 月 21 日发到 PyPI 和官方镜像的恶意 LiteLLM 版本。这一条讲它怎么触发、能拿到什么,以及为什么删包不算处置完。
// 要点
- 10 月 21 日,被篡改的 LiteLLM 1.107.0 发布到 PyPI,并通过官方容器镜像分发;包里的 cook.pth、cook.py 和 sitecustomize.py 会在 Python 初始化时自动执行,只要在受影响环境里启动 Python 就可能触发。
- 据 LiteLLM 维护者说明,攻击者用窃取的开发者 GitHub 凭据改了发布流程,指向仿冒仓库 Berri-AI/litellm,再用另一名开发者账号的凭据通过生产审批。
- 窃取目标包括开发工具、云、浏览器、SSH 的凭据和环境变量,另有模块尝试读取 LiteLLM 代理数据库里的凭据和模型配置;在 Unix 系统上还支持下载并执行额外代码。
- Microsoft 建议:不要在可疑环境里运行 Python 或 pip 来排查;重建环境而不是只删包,从干净机器轮换可达的凭据,改用哈希锁定的依赖和镜像 digest。
开发者视角模型网关是整个系统里钥匙最多的地方,这次连「没用到它、只是装了它」的 CI 和开发机都中招。我会先查所有锁文件和镜像里有没有 1.107.0,有就按凭据泄露处理、全部轮换;之后网关镜像一律按 digest 固定,升级走人工审核,别再用浮动 tag 自动拉新版。