概述

LiteLLM 是一款应用广泛的开源 Python 库及 AI 网关(代理服务器),支持将 100 多种大语言模型 API 统一转换为 OpenAI 格式,常被集成到 AI 代理、MCP 服务器、LLM 编排工具及企业级 AI 流程中。该 PyPI 包的月下载量超过 9500 万次,在云环境中的渗透率约为 36%。2026 年 3 月 24 日,LiteLLM 遭遇了一次典型的供应链攻击,攻击者 TeamPCP 通过 PyPI 上传了恶意版本 litellm==1.82.7 和 litellm==1.82.8。

此次攻击是 TeamPCP 黑客组织系列攻击中的最新一环(此前已入侵过 Aqua Security 的 Trivy 扫描器和 Checkmarx 的 KICS GitHub Action),波及范围广,隐蔽性较强,并利用 Python 生态中的 .pth 机制实现了“无需 import 即可执行”。好消息是本次恶意版本暴露时间较短,大约 3 小时后 PyPI 便已迅速将其隔离,官方也及时作出响应。以下是对本次供应链攻击的详细技术细节与应对建议。

事件时间线

  • 2026 年 3 月 19 日前后:TeamPCP 通过针对 Trivy 的供应链攻击窃取了部分凭证(包括 LiteLLM 的 CI/CD 流水线中使用的凭证)。

  • 2026 年 3 月 24 日 08:30 UTC 左右:攻击者利用窃取到的 PyPI 维护者凭证,绕过了官方 CI/CD 流程,直接向 PyPI 上传了恶意版本 1.82.7 和 1.82.8。

  • 约 11:25 UTC:PyPI 检测到异常并将这两个版本隔离。

  • 3 月 24 日下午:LiteLLM 官方发布安全公告,移除恶意包、轮换相关凭证,并邀请 Mandiant 协助取证。

  • 3 月 25 日至今:多家安全机构(Wiz、Snyk、Endor Labs、FutureSearch 等)发布了详细分析,社区在 Reddit、HN、X 等平台上也展开了广泛讨论。

攻击根因:链式供应链污染

此次攻击并非直接攻破 LiteLLM 的代码仓库,而是利用了之前攻击中窃取到的凭证:

  • LiteLLM 的 CI/CD 安全扫描流程依赖 Trivy(当时已被 TeamPCP 攻陷)

  • Trivy 事件导致了 LiteLLM 维护者的 PyPI API token 泄露。

  • 攻击者直接用该 token 向 PyPI 上传了恶意的 wheel 和 sdist 包,绕过了 GitHub 上的官方发布流程(因此源码仓库本身并未被污染)。

这也反映出供应链攻击的“链式放大”效应:攻破一个安全工具(Trivy),就可能影响到大量依赖它的下游项目。

恶意载荷分析

两个恶意版本的 payload 略有不同,但核心目标都是窃取凭证、持久化、横向移动:

  • 1.82.7:在 litellm/proxy/proxy_server.py 中植入了经过双重 base64 编码的 payload,仅在运行 litellm --proxy 或导入 litellm.proxy.proxy_server 时触发。

  • 1.82.8(风险更高):额外增加了 litellm_init.pth 文件(约 34KB),利用 Python 的 .pth 机制(安装后会被 site.py 自动执行),只要 Python 解释器启动就会运行,无需显式 import litellm。

Payload 执行流程

凭证收集

  • 扫描并窃取 SSH 私钥、.env 文件、各大云厂商(AWS/GCP/Azure)凭证、Kubernetes 配置和 token、数据库密码、Git 配置、Shell 历史、加密钱包、TLS 私钥、CI/CD secret、环境变量等。

  • 额外执行命令导出环境变量(dump env),并尝试访问云平台的元数据服务(IMDS)。

加密与回传

  • 使用硬编码的 4096 位 RSA 公钥配合 AES-256-CBC 加密(每次随机生成 session key)。

  • 将数据打包为 tpcp.tar.gz,通过 POST 请求发送至攻击者控制的域名:

  • 1.82.7 → checkmarx[.]zone

  • 1.82.8 → models.litellm.cloud(该域名非 LiteLLM 官方所有,官方已明确否认)

持久化与横向移动

  • 本地持久化:在 ~/.config/sysmon/sysmon.py 中安装后门,伪装成“System Telemetry Service”,并创建 systemd user service。

  • Kubernetes 环境(高危):读取所有命名空间中的 secret,利用 service account token 在 kube-system 命名空间下创建特权 pod(镜像为 alpine:latest,pod 名称模式为 node-setup-*),挂载宿主文件系统并植入后门。

  • 攻击者声称已从约 50 万台设备中窃取数据(该数据包含重复统计,尚未独立验证)。

意外暴露的原因

.pth 文件的实现存在 bug —— 子进程中的 subprocess.Popen 再次触发了 .pth 执行,形成指数级 fork bomb,导致部分机器内存被耗尽而崩溃,反而使恶意行为暴露(由 FutureSearch 工程师在 Cursor MCP 插件中首次发现)。

IOC(失陷指标)

文件

litellm_init.pth(位于 site-packages 目录)

域名

models.litellm.cloud

checkmarx.zone

持久化路径

~/.config/sysmon/sysmon.py

~/.config/systemd/user/sysmon.service

/tmp/pglog

/tmp/.pg_state

Kubernetes 相关

kube-system 命名空间下出现 node-setup-* 的 pod

影响范围与风险评估

受影响条件

在 2026 年 3 月 24 日 10:39–16:00 UTC 期间通过 pip install litellm 安装(或通过依赖间接安装)了 1.82.7 或 1.82.8 版本。

高危场景

CI/CD 流水线、AI 代理框架、本地开发环境、Kubernetes 集群,这些场景可能导致全集群 secret 泄露和持久化植入。

未受影响的情况

  • 官方 Docker 镜像(ghcr.io/berriai/litellm,已固定依赖版本)
  • LiteLLM Cloud 服务
  • 从 GitHub 源码安装
  • 使用 v1.82.6 及更早版本(且未在风险窗口期内升级)

需要说明的是本次供应链攻击事件的潜在影响较大,由于 LiteLLM 广泛嵌入 AI 工具链中,一旦 CI/CD 环境被污染,可能引发下游数百个项目连锁泄露云凭证。

应对建议

LiteLLM 团队已采取的措施

  • 从 PyPI 下架恶意版本
  • 轮换所有维护者凭证,暂停新版本发布
  • 邀请 Mandiant 进行取证分析
  • PyPI 已发布官方通告(PYSEC-2026-2)

用户/企业紧急缓解建议(按优先级)

1. 检查版本:通过 pip show litellm 确认当前版本,或在虚拟环境、CI 日志、Docker build 日志中检索。

2. 卸载并清理缓存:

  • pip uninstall litellm
  • pip cache purge(若使用 uv,可执行 rm -rf ~/.cache/uv)
  • 查找并删除 litellm_init.pth 文件

3. 全面轮换凭证:将所有 SSH 私钥、云服务 access key、K8s token、API key、数据库密码等视为已泄露,尽快更换。

4. 检查持久化痕迹:搜索上述 IoC 中的文件及 Kubernetes pod。

5. 锁定安全版本:在 requirements.txt 或 pyproject.toml 中固定 litellm<=1.82.6,或等待官方确认的下一个干净版本。< p="">

6. 加强监控:若网络流量中出现 models.litellm.cloud 或 checkmarx.zone,应立即排查。

安全启示与长期建议

1.供应链攻击的现实威胁

仅依赖单个 PyPI 发布账号且未对 CI/CD 凭证做有效隔离,风险较高。TeamPCP 的“Trivy → LiteLLM”链式攻击表明,安全工具本身也可能成为攻击入口。

2.Python 生态的薄弱点

.pth 文件的自动执行机制容易被滥用;pip 默认不进行包签名校验;间接依赖往往被忽略。

3.推荐的最佳实践:

  • 始终固定依赖版本(配合 Dependabot 与自动化 SBOM 管理)
  • 使用可信构建方式(如 Trusted Publishing、GitHub OIDC)
  • 部署时优先使用官方 Docker 镜像或源码安装
  • 引入软件成分分析(SCA)工具与运行时检测
  • Kubernetes 环境下建议通过 Pod Security Policy 或 Kyverno 限制特权容器的创建

总结

此次事件再次提醒我们,AI 基础设施的安全不容忽视:流行的项目并不等同于安全,供应链风险正从传统软件领域加速向 LLM 生态渗透。建议使用 LiteLLM 的团队尽快自查,并将依赖管理提升到企业级安全策略的高度。

声明:本文来自奇安信威胁情报中心,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。