本文目录
Toggle月下载量高达 9,700 万次的 AI 开源套件 LiteLLM,在 24 日爆出遭供应链攻击,两个受损版本(v1.82.7、v1.82.8)被植入恶意程式码,能系统性窃取加密钱包、SSH金钥、云端凭证等几乎所有机敏资讯。
慢雾科技资安长 23pds 今早于 X 上引述该消息并发出严重警告。
谁发现的?攻击者是谁?
FutureSearch 工程师 Daniel Hnyk 是首个揭露该项漏洞的专业人员,他与 Callum McMahon 在将 LiteLLM 作为 Cursor MCP 外挂的间接依赖引入时,侦测到异常行为,随即展开逆向分析。
后来发现幕后攻击者为骇客组织 TeamPCP。该组织先前已入侵知名开源安全扫描器 Trivy 的 CI/CD 管线,借此取得 LiteLLM 维护者的 PyPI 帐号凭证,随后上传两个带有后门的恶意版本。
三阶段攻击机制
恶意程式码的执行分为三个阶段,环环相扣:
Stage 1 — 凭证收割:安装后,恶意的 `.pth` 档案(`litellm_init.pth`)会在每一个 Python 程式启动时自动执行,无需任何 `import` 指令触发。窃取清单涵盖 SSH 金钥、`.env` 档(含 API 金钥)、AWS / GCP / Azure 云端凭证、Kubernetes 配置、Git 凭证、Shell 指令历史,以及加密货币钱包档案与资料库密码。
Stage 2 — 资料外泄:所有窃得的资料以硬编码的 4096-bit RSA 公钥搭配 AES-256-CBC 加密后,打包成 tar 压缩档,透过 POST 请求传送至 `https://models.litellm.cloud/`——这个域名与 LiteLLM 官方毫无关联,是攻击者自行架设的渗漏端点。
Stage 3 — 横向移动与持久化:若机器存有 Kubernetes token,恶意程式会读取所有名称空间的 secrets,并在每个 kube-system 节点部署特权 `alpine:latest` Pod,挂载主机档案系统。同时于 `/root/.config/sysmon/sysmon.py` 安装持久后门,并建立 systemd 使用者服务,确保重开机后仍能存活。
事件时间线
整起事件在不到 10 小时内快速演进:
– 3 月 24 日 10:52 UTC:v1.82.8 上传至 PyPI
– 12:30 UTC:v1.82.7 确认同样受损
– 13:03 UTC:GitHub 上的通报 Issue 被机器人误判为垃圾讯息,标记为「not planned」关闭,延误了公开预警时机
– 20:15 UTC:受损版本终于从 PyPI 下架,隔离解除
从恶意版本上线到下架,约有 9 小时的暴露时间。
加密开发者为何是高风险族群?
LiteLLM 是目前最热门的 AI 模型代理套件之一,大量加密与 DeFi 专案的 AI Agent 基础设施都依赖它作为模型路由层。这次攻击直接把加密货币钱包档案列入窃取清单,意味著任何在同一台机器上执行 LiteLLM 并持有加密资产的开发者,资产都面临直接风险。
更值得警惕的是攻击向量本身:透过 MCP 外挂引入间接依赖,开发者甚至不会察觉自己安装了 LiteLLM。这揭示了 AI Agent 工具链的一个结构性安全盲点:外挂生态的依赖链越复杂,供应链攻击的攻击面就越宽。
紧急修复步骤
曾安装 LiteLLM 的开发者应立即执行以下检查:
1. `pip show litellm` 确认目前版本,v1.82.7 或 v1.82.8 为受损版本
2. 删除受影响版本并清除 pip 快取
3. 检查 `~/.config/sysmon/sysmon.py` 与 `sysmon.service` 是否存在
4. Kubernetes 环境:扫描 `kube-system` 名称空间内是否出现 `node-setup-*` Pod
5. 所有 SSH 金钥、云端凭证(AWS/GCP/Azure)、API 金钥与加密钱包私钥,必须假设已外泄,立即轮换



