凌晨2点,这个Python库被投毒,1.8万Star的AI工具中招
───
今天凌晨,一个在AI开发者圈子里几乎人手一个的Python库——Litellm,在PyPI上被植入恶意代码。
两个版本:1.82.7 和 1.82.8。
如果你昨晚到现在的项目里用过 Litellm,这篇文章值得认真看一遍。
发生了什么
Litellm 是一个流行的 LLM 抽象层库,GitHub 1.8万星。它的作用是:用统一的方式调用 OpenAI、Anthropic、Google、阿里等几十家大模型API,开发者不用改代码就能切换底层模型。
今天凌晨,PyPI 上突然出现了两个新版本:
- 1.82.7 — 在
litellm/proxy/proxy_server.py 里埋了 payload - 1.82.8 — 更狠,加入了
litellm_init.pth 文件
pth 文件是什么?
它会在 Python 解释器启动时自动执行——连 import litellm 都不需要。
只要你的环境装了 1.82.8,你的所有环境变量、SSH密钥、云服务凭证,全部被偷。
攻击者控制的域名:models.litellm.cloud、checkmarx.zone。
怎么进去的
官方很快给了结论:
CI 里的 PyPI 发布令牌(API Token)泄露了。
就是开发者用来自动发布版本到 PyPI 的密钥。
这个密钥放在 GitHub Actions 的 secrets 或环境变量里,不知道怎么被攻击者拿到了。
然后攻击者以官方名义"发布"了两个恶意版本,任何信任 PyPI 自动更新的开发者都会中招。
这和之前的 Trivy 被黑事件是同一套手法。
你需要做什么
立刻执行:
第一步:检查是否安装了恶意版本
pip show litellm
如果版本是 1.82.7 或 1.82.8,立刻卸载:
pip uninstall litellm -ypip install litellm==1.82.6
第二步:检查 pth 文件
Mac/Linux:
find ~/.local/lib/python*/site-packages/ -name "litellm_init.pth" 2>/dev/null
Windows:
dir %APPDATA%\Python\*site-packages\litellm_init.pth
如果找到这个文件,说明中招了。
第三步:轮换所有密钥
不只是 GitHub token,所有在这个环境里出现过的密钥都换一遍:
第四步:审查 CI/CD 流水线
检查 GitHub Actions 的 secrets 和环境变量,是否有 PyPI token 长期暴露。
为什么这件事值得警惕
很多人觉得"我只是个人开发,又不是大公司,谁来攻击我"。
但这件事说明:攻击者是自动化扫的。
只要你把包发布到 PyPI,不管你是个人还是企业,都可能成为目标。
而且 AI 领域的包有一个特殊风险——
一旦被污染,影响的不只是代码执行,还有可能泄露 API 密钥。
你的 OpenAI API Key、Claude Key、阿里的 DashScope Key……这些才是攻击者真正想要的东西。
今天他们拿到的是 litellm 用户环境里的凭证,明天可能是另一个包。
一个更根本的问题
PyPI 生态有一个长期矛盾:
PyPI 账户安全 ≠ 持续集成安全
大多数开发者用 API Token 在 CI 里自动发布,这个 token 如果泄露,就等于 PyPI 账户被攻破。而且很多老项目还在用旧的发布方式,token 长期有效,从不过期。
这次事件之后,建议所有在 PyPI 发包的开发者:
- 给 CI 单独创建受限token,不要用主账号全局 token
- 考虑用 OIDC 做发布认证,根本不存长期 token
你有没有用过 Litellm?现在去检查一下。
希望你是 1.82.6 👀
关于作者: 持续关注AI开发工具链安全,欢迎交流。