要闻 可动手 重点 10月22日 周四 #safety#infra#devtools

LiteLLM 1.107.0 遭投毒:安装即窃取云与 AI 工具凭据

多家安全厂商报告,常用的 LLM 网关库 LiteLLM 在 PyPI 上发布的 1.107.0 版本被植入恶意代码。StepSecurity 分析显示,7 个平台的 wheel 包会向 site-packages 写入 cook.pth、cook.py 和 sitecustomize.py,每次启动 Python 解释器都会运行窃密程序,无需 import litellm;该版本已于当天从 PyPI 移除。

要点

  • 窃取范围包括云凭据、SSH/GPG 密钥、浏览器密码、各类包仓库与 CI 令牌,以及 Claude Code、Cursor、Codex 等 AI 编程工具的凭据
  • 设置了 DATABASE_URL 的 LiteLLM 代理主机上,数据库中的模型供应商 API key 和模型配置也会被读取
  • 另有后台进程每小时检查一个 GitHub 文件,拿到主机名后下载并执行远程代码
  • StepSecurity 建议固定到 litellm==1.106.2、删除上述文件、轮换受影响主机可访问的全部凭据,并封禁 litellm.dev;Datadog 称容器镜像仓库也出现了恶意版本
为什么值得关注

LiteLLM 常被部署为集中管理各家模型 API key 的网关,一次投毒可能同时泄露整个团队的模型密钥。依赖未锁版本、10 月 21 日装过新版的环境都应立即排查。

配套实验

已验证 检查 3/3 通过 GitHub Actions 实际运行 · Python 3.12.15 · 耗时 0.1s
排查 site-packages 里会在 Python 启动时执行的代码

受 LiteLLM 1.107.0 投毒事件启发,用 Python 标准库扫描 site-packages 中 .pth 的 import 行、sitecustomize.py 等启动钩子,并比对公开 IoC 文件名与哈希,验证能区分正常路径 .pth、合法但会执行代码的 .pth 和与 IoC 一致的文件。

结论3/3 样例环境分类正确

[PASS] clean     CRITICAL=0 (期望 0)  REVIEW=0 (期望 0)
[PASS] tooling   CRITICAL=0 (期望 0)  REVIEW=1 (期望 1)
           REVIEW   distutils-precedence.pth:1  启动时会执行的 import 行:import os; var = 'SETUPTOOLS_USE_DISTUTILS'; enabled = os.en
[PASS] poisoned  CRITICAL=2 (期望 2)  REVIEW=2 (期望 2)
           CRITICAL cook.pth  哈希与已知恶意文件 cook.pth 一致
           CRITICAL cook.py  文件名与 LiteLLM 投毒事件公开 IoC 一致
           REVIEW   distutils-precedence.pth:1  启动时会执行的 import 行:import os; var = 'SETUPTOOLS_USE_DISTUTILS'; enabled = os.en
           REVIEW   sitecustomize.py  site-packages 中的启动模块,每次启动解释器都会执行

当前解释器 3.12.15 的 site-packages 扫描(仅供参考):
  /tmp/exp-isjria1y/venv/lib/python3.12/site-packages: CRITICAL=0 REVIEW=0

RESULT: 3/3 样例环境分类正确
python main.py 查看代码与内网复现步骤 →

来源

Esc
↑ ↓ 选择Enter 打开

分享图

1080 × 1350,适合发到群聊或朋友圈
分享图预览

键盘快捷键

j / k
下一条 / 上一条
o
展开或收起当前条目
Enter
打开当前条目详情
c
复制当前条目链接
s
收藏 / 取消收藏当前条目
/ 或 ⌘K
搜索
1 2 3
切换密度:标题 / 摘要 / 完整
t
切换主题
?
显示本帮助