未知犯罪分子周三入侵了 LiteLLM 的发布流程,通过 PyPI 和 Docker 仓库分发了一个恶意版本(1.107.0),里面藏着窃取云和 AI 凭据的恶意软件,以及能远程执行任意代码的远控木马(RAT)。

LiteLLM 发布流程被入侵投放窃密恶意包,AI 开源软件供应链安全资讯配图

PyPI 在几小时内就隔离了这个被投毒的流行开源 AI 网关版本,Docker 镜像 litellm/litellm:1.107.0 也很快从 Docker Hub 和 GHCR 下架——但任何平台跑过这个被入侵包的人,都应该默认自己的机密已经被偷了。

安全公司 Aikido 的恶意软件猎手 Ilyas Makari 建议:检查 /tmp/.pc_once_*(如果这个文件存在,说明数据外带已经触发)和 /tmp/remote_code_loader.lock(如果存在,说明 C2 守护进程曾运行或仍在运行)。拉过官方 Docker 镜像或通过 latest、main-latest、main-stable 标签拉取的人同样适用。目前最新安全版本是 v1.106.2。

现在判断这次攻击的规模还为时过早——根据 CloudSEK,3 月的那次 LiteLLM 事件可能已经暴露了全球超过 2500 个组织和 43.4 万条 CI/CD 流水线。Aikido、谷歌旗下 Wiz 云安全公司以及供应链安全公司 Socket 都发布了详细的威胁猎杀和缓解指南,LiteLLM 用户和安全团队务必第一时间阅读。

LiteLLM 由 BerriAI 开发,为 OpenAI、Anthropic、谷歌 Gemini 等 LLM 提供商提供统一接口,每周下载量约 2300 万。这意味着被入侵的安装会与 LLM 提供商的 API 密钥、云身份、数据库连接串同处一台机器,把大量有价值的凭据和敏感数据暴露给上传恶意包的人。Socket 研究员表示:使用 1.107.0 的团队应立即停止部署,并排查安装后运行过 Python 的环境,包括代理容器和 CI 运行器。

恶意版本于 11:39 UTC 上传。据 Wiz 的研究员分析,载荷来自 github.com/Berri-AI/litellm(BerriAI 组织的连字符变体)上的恶意提交:三个恶意文件包括 cook.pth——每次调用 Python 都会自动触发第二个文件 cook.py(信息窃取器);第三个文件 sitecustomize.py 是 RAT,Python 在解释器启动时也会执行它,它生成一个后台守护进程,每小时轮询攻击者基础设施获取新命令。窃取器在 16 个模块中收集敏感数据:浏览器凭据和 Cookie(Chrome、Firefox、Edge、Safari)、AWS 凭据和环境变量、EC2/ECS 实例元数据、GCP 服务账号密钥、Azure CLI 缓存的令牌——以及大量 LLM API 密钥。