LiteLLM 1.107.0 遭入侵:凭证窃取器与后门分析

事件概述

2026年10月21日,PyPI上的LiteLLM包版本1.107.0被发现包含恶意代码,旨在窃取开发者的敏感凭证并建立持久的远程代码执行(RCE)后门。恶意文件被注入到构建过程中,这意味着GitHub上的源代码保持干净,而分发的wheel包中却包含有效载荷。PyPI已移除该受损版本。

攻击机制

该攻击利用了复杂的供应链注入手段。通过修改私有构建管道中的pyproject.toml文件,攻击者确保三个恶意文件被包含在最终的Python wheel包中:

  • cook.pth 和 cook.py:这些文件充当凭证窃取器。由于Python在启动时会自动执行.pth文件,此代码会在主机上的每个Python进程中运行,包括IDE、CI/CD管道和后台任务。它会收集SSH密钥、云服务商凭证(AWS、Azure、GCP)、浏览器密码和LLM API密钥,并将数据外泄至www.litellm[.]dev。
  • sitecustomize.py:此文件实现了一个在主机上持久化的后台守护进程。它会定期检查远程GitHub仓库以获取命令与控制服务器地址,允许攻击者在受害者的机器上下载并执行任意第二阶段代码。

构建管道受损

SafeDep的安全分析表明,恶意wheel包是使用BerriAI的内部发布管道构建的,而非公共GitHub Action。攻击者很可能入侵了维护者凭证或管道基础设施本身,以注入cook/目录并修改构建配置。由于恶意文件是在wheel构建过程中添加的,分发中的RECORD文件正确记录了它们,使得该包在自动化完整性检查中看似合法。

社区响应与缓解措施

该事件是LiteLLM今年第二次面临供应链入侵,引发了对项目安全态势和维护者实践的重大担忧。

  • 立即行动:建议用户将LiteLLM依赖锁定到1.106.2或更早版本。
  • 官方指南:LiteLLM团队已在docs.litellm.ai/blog/security-incident-oct-21-2026发布了官方事件报告,确认事件已得到控制。
  • 开发者情绪:社区成员对这些漏洞的反复出现表示不满。许多人呼吁改进包管理安全,例如为新包版本设置默认“冷却期”,并使用沙盒工具来限制第三方依赖的爆炸半径。

“攻击者入侵了3个独特的开发者GitHub凭证,这有点吓人;这似乎是系统性的——如果三名开发者的密钥被窃取,那意味着真正的问题在别处。他们撤销了除一个开发者外的所有凭证,这可能是正确的做法,但我会将LiteLLM锁定到‘此版本之前的版本’,并在进一步通知前保持不动!” — HN评论者@threecheese

“所有的sandbox-exec和所有的Lulu规则都无法防止这种事情。一旦权限弹窗疲劳开始出现,我们就会像平常一样授予任何权限。” — HN评论者@crossroadsguy

Sources

相关