天哪!9500万次下载的AI工具被投毒!
你正在办公室里喝着咖啡听着歌,准备开始一天的工作。像往常一样,你打开终端,输入了那个熟悉的命令——pip install litellm。
那么恭喜你中奖啦——不是,中病毒啦……
这两天,月下载量高达9500万次的AI工具litellm被暴露让黑客植入了恶意后门。OpenAI创始成员、前Tesla AI总监Andrej Karpathy在第一时间发出了紧急警告。

Andrej 用罕见的严肃语气告诉所有开发者:如果你在过去几天安装或更新了litellm,你的所有云凭证可能已经落入他人之手。
这不是一次普通的技术故障,而是AI开发者社区面临的最严重供应链安全危机。它像一颗深水炸弹,在看似平静的开源生态中掀起了滔天巨浪。
1. 攻击链揭秘:一次入侵如何引发连锁崩塌
来看看这次攻击是如何一步步演变成一场灾难的。整个攻击链条堪称教科书级别的供应链渗透案例,它向我们展示了现代软件开发中一个令人不寒而栗的事实:安全漏洞的传播速度,远比我们想象的要快得多。
故事要从Trivy说起。Trivy是一款广受欢迎的开源安全扫描工具,被无数开发团队用来检测容器镜像和代码库中的漏洞。然而,正是这个用来保护我们的工具,自己却成为了攻击的突破口。黑客成功入侵了Trivy的某个组件,获得了对下游项目的访问权限。

接下来发生的事情就像多米诺骨牌一样一发不可收拾。litellm的CI/CD流水线被渗透了。黑客在litellm的1.82.7和1.82.8两个版本中植入了精心设计的后门程序。
这些后门程序就像潜伏在软件中的间谍,会在用户安装或运行litellm时被激活。一旦触发,它们就会疯狂搜集系统中的各种敏感凭证——SSH私钥、AWS访问密钥、数据库连接字符串、Kubernetes secrets,甚至是各种API令牌。所有这一切,都会被加密后发送到攻击者控制的服务器。

在现代软件开发中,我们构建的应用程序就像一座金字塔,底层是无数开源项目堆砌而成的基石。当其中一个基石被动了手脚,整座金字塔都可能摇摇欲坠。
每一个安装了这个版本litellm的开发者,都成为了攻击者的潜在猎物。
2. litellm是什么?为什么影响如此巨大
说到这里,你可能会问:litellm到底是什么?为什么它的沦陷会引起如此轩然大波?
简单来说,litellm是AI开发领域的一把”瑞士军刀”。它是一个统一的大语言模型调用库,支持超过100个LLM提供商。无论你使用的是 OpenAI的GPT系列、Anthropic的Claude、Google的Gemini,还是Azure的OpenAI服务,甚至是各种开源模型和私有化部署的模型,litellm都能让你用同一套代码接口来调用它们。

这种统一抽象层的价值是巨大的。想象一下,如果你要开发一个AI应用,需要同时对接多个模型提供商,每个提供商都有自己的 API格式、认证方式和调用规范。没有litellm,你可能需要写大量的适配代码。而有了litellm,你只需要简单配置一下,就可以在不同模型之间无缝切换。
正是这种便利性,让litellm成为了AI开发者的标配工具。它每月高达9500万次的下载量,从初创公司的技术团队到世界500强的企业研发部门,从个人开发者到大型云服务提供商,litellm无处不在。
这就是为什么这次事件的影响如此巨大。它不仅仅是一个开源项目被攻击那么简单,而是整个AI基础设施的信任基础被动摇了。
3. 一个让攻击者暴露的”低级错误”
说起来,这次攻击的发现过程颇具戏剧性。
发现者是FutureSearch的开发者Callum McMahon。3月24日,他在Cursor里使用MCP插件时,机器突然内存爆炸,直接卡死。

一开始他以为是自己的问题。排查之后发现,问题出在插件的依赖链上——这插件间接依赖LiteLLM,而litellm_init.pth里的恶意代码用了subprocess.Popen启动子进程来跑加密载荷。
问题就出在这儿。
.pth文件是Python的一种特殊文件,每次解释器启动时都会自动执行。恶意代码利用这一点,每次启动都创建新进程,而新进程又会触发同样的.pth,再创建子进程,层层嵌套,形成指数级”分叉炸弹”。内存瞬间被撑爆。
正是因为这个让系统崩溃的Bug,安全研究员才顺藤摸瓜,在短时间内定位到恶意代码并报告给PyPI安全团队。
Karpathy在推文里感慨:要不是攻击者代码里有这个疏忽,这投毒可能潜伏几天甚至几周都发现不了。
一个精心设计的攻击,因为程序员基本功不过关而暴露。这种荒诞感,跟电影情节似的。
5. 攻击者的嚣张与威胁的持续性
如果说这次攻击本身已经够让人愤怒,那么攻击者的态度更是让人不寒而栗。一个名为TeamPCP的黑客组织在Telegram上公开炫耀他们的攻击成果,毫不掩饰自己的嚣张气焰。

他们不仅展示了从受害者那里窃取的数据,还威胁要将攻击范围扩大到更多的开发者基础设施。这种公开挑衅的行为说明,他们并不害怕被发现,甚至可能已经在策划下一轮的攻击。对于开源社区来说,这是一种赤裸裸的威胁。
现在,赶紧!立即!检查自己的系统是否安装了litellm的1.82.7或1.82.8版本。如果你已经使用了被攻击的版本,抓紧时间把可能泄露的各类密钥撤销、更换掉。
并且从现在开始,养成定期审查依赖库安全性的习惯。毕竟更令人担忧的是,这次攻击可能只是冰山一角。如果litellm可以被攻破,那么其他同样流行的开源项目呢?那些我们每天都在使用、却从未仔细审查过代码的依赖库呢?每一个都可能成为下一个攻击目标。
夜雨聆风