微软披露 LiteLLM 1.107.0 供应链投毒:Python 启动钩子可在未 import 时窃凭据
微软安全研究团队于 2026年10月23日发文指出:2026年10月21日,遭篡改的 LiteLLM 1.107.0 被发布到 PyPI,并经官方容器镜像扩散。恶意包植入可在 Python 解释器初始化阶段执行的文件;应用不必 import LiteLLM,在受影响环境中启动 Python 即可能触发载荷。[1]
攻击如何进来
据 LiteLLM 维护方说法(微软文中转述):攻击者利用被盗的开发者 GitHub 凭据,篡改发布工作流,将构建重定向到仿冒仓库 Berri-AI/litellm(相对合法仓库 BerriAI/litellm),并借助另一开发者账户相关凭据完成生产审批。微软写明尚未独立还原攻击者最初如何获得上游访问权。[1]
恶意 wheel 在 litellm-1.107.0.data/purelib/ 下携带 cook.pth、cook.py、sitecustomize.py,安装后落到环境库目录、位于常规 litellm 应用目录之外,从而挂接 Python site 初始化(.pth 可执行 import、以及 sitecustomize)。[1]
载荷做了什么
分析可见两条路径:一是经 cook.pth 的 import cook 启动凭据收集器(自称 PRIVCOLLECT,守护线程采集);二是 Unix 向的 sitecustomize.py 加载器,内含收集逻辑并可从远端拉取执行额外 Python 代码(远端二段执行在研究时点未确认发生)。[1]
收集目标覆盖开发者/AI 工具配置、源码与包管理凭据、云与工作负载身份、浏览器数据、进程环境、SSH/GPG 等,以及在条件满足时用 Prisma 读取 LiteLLM 代理库中选定表字段。[1]
数据经 AES 加密、RSA 包裹密钥后,尝试 POST 至攻击者控制的 www.litellm.dev 健康检查风格端点(文中已做 defang 处理)。[1]
处置要点(按微软建议概括)
清点所有安装、缓存、镜像与锁文件中的 1.107.0,用摘要比对,优先用镜像 digest 而非浮动 tag。[1]
不要在可疑环境里运行 python/pip 做自检;从外部干净系统取证。隔离后重建环境,确认库路径上的
cook.pth/cook.py/sitecustomize.py已清除。[1]在干净机器上轮换模型厂商密钥、云与 CI 凭据、源码/注册表令牌、SSH/GPG、浏览器会话等;代理主机还要覆盖数据库连接串与存储的提供商凭据。[1]
仅卸载 litellm 目录可能留下顶层启动钩子文件,重建比「删包」更可靠。[1]
说明:IOC、狩猎查询与 Defender 检测名以微软原文为准;本稿只转述事件机制与处置原则,不复述可直接滥用的完整利用细节。
来源
[1] Microsoft Security Blog: Inside the LiteLLM 1.107.0 supply chain compromise: Credential theft through Python startup hooks,Microsoft Security Research 等,2026年10月23日。查询日:2026-10-27。
#LiteLLM #供应链安全 #Python #PyPI #凭据窃取
成为第一条评论!
Nobody's responded to this post yet. Add your thoughts and get the conversation going.