返回首页

litellm 遭受攻击:PyPI 中的凭据窃取

PyPI 上 litellm 1.82.7 和 1.82.8 版本泄露包括通过 .pth 文件和 K8s pods 收集和外泄凭据。描述了机制、IoC 和修复步骤。攻击与 TeamPCP 活动相关。

litellm 遭受攻击:PyPI 版本中的窃取器
Advertisement 728x90

litellm 1.82.7/1.82.8 版本遭入侵:通过 PyPI 的凭证窃取机制

PyPI 上的 litellm 库 1.82.7 和 1.82.8 版本包含恶意代码,用于窃取 SSH 密钥、云凭证、Kubernetes 机密以及 API 密钥。该攻击利用供应链,在启动 Python 解释器或导入模块时自动触发。受影响系统包括那些带有传递依赖的系统,例如 Cursor 的 MCP 插件。

事件发现

攻击通过 .pth 文件中的分叉炸弹暴露出来,该炸弹耗尽了主机资源。如果没有这个 bug,恶意软件本可以悄无声息地运行。这些版本于 2026 年 3 月 24 日 UTC 10:39–10:52 之间发布,没有任何 GitHub 更新——恶意代码仅注入到 PyPI 包中,绕过了代码审查。

FutureSearch 研究人员注意到缺少发布标签。仓库本身是干净的,这是供应链攻击的典型特征。

Google AdInline article slot

恶意软件技术细节

第一阶段:数据收集

载荷提取以下内容:

  • SSH 密钥和配置。
  • .env 文件。
  • AWS、GCP、Azure 凭证。
  • Kubeconfig 和 Kubernetes 机密。
  • 数据库密码。
  • Shell 历史记录。
  • 加密钱包文件。
  • 环境变量。

会向云提供商的 IMDS 端点发出查询。

第二阶段:数据外泄

数据使用 AES-256-CBC(硬编码公钥 RSA-4096)加密后,发送至 models.litellm[.]cloud——一个非官方域名。

Google AdInline article slot

第三阶段:持久化

在 Kubernetes 中,恶意软件会:

  • 通过服务账户令牌读取所有集群机密。
  • kube-system 中创建特权 alpine:latest pod,并挂载主机 FS。
  • 安装后门 ~/.config/sysmon/sysmon.py
  • 注册 systemd 用户服务,在所有节点上运行。

1.82.8 版本使用 litellm_init.pth(34 628 字节),由 Python 自动执行。1.82.7 版本在 proxy/proxy_server.py 中包含混淆代码。

检测和修复

使用以下命令检查系统:

Google AdInline article slot
# litellm version
pip show litellm

# Traces in uv cache
find ~/.cache/uv -name "litellm_init.pth"

# Backdoor
ls ~/.config/sysmon/sysmon.py
ls ~/.config/systemd/user/sysmon.service

在 Kubernetes 中:kubectl get pods -n kube-system | grep node-setup-

如果安装了 1.82.7/1.82.8 版本:

pip uninstall litellm
rm -rf ~/.cache/uv
# Or: pip cache purge

回滚至 1.82.6(3 月 22 日,Endor Labs 确认干净)。轮换所有凭证:SSH 密钥、云令牌、kubeconfig、API 密钥、数据库密码。检查过去 24–48 小时内的 CI/CD 管道和 Docker 镜像。

TeamPCP 活动背景

该攻击属于 TeamPCP 活动的一部分(自 2025 年 12 月以来):

  • 3 月 19 日:Trivy(trivy-action 的 75/76 个标签)。
  • 3 月 21–23 日:KICS/Checkmarx、OpenVSX、npm 中的 CanisterWorm(64+ 个包)。
  • 3 月 24 日:litellm。

共同特征:AES-256 + RSA-4096,使用同一公钥。litellm 的 GitHub Issue #24512 被标记为“not planned”并关闭,评论内容可疑——可能账户遭入侵。

入侵指标

  • C2 域名:models.litellm[.]cloud
  • 文件:litellm_init.pth
  • SHA-256:ceNa7wMJnNHy1kRnNCcwJaFjWX3pORLfMh7xGL8TUjg
  • 后门:~/.config/sysmon/sysmon.py
  • K8s:kube-system 中的 node-setup-* pod。

关键点

  • .pth 文件中的恶意代码无需 import 即可触发,影响所有 Python 进程。
  • 数据外泄采用加密;C2 是一个伪造的 litellm 域名。
  • Kubernetes 利用通过特权 pod 获得完整集群访问权限。
  • 属于 TeamPCP 攻击链的一部分:需监控 Trivy、KICS、npm 包。
  • 必须回滚至 1.82.6 并全面轮换凭证。

— Editorial Team

Advertisement 728x90

继续阅读