
如果你最近在基于 OpenClaw 运行 Agent、安装 Skill,或者只是正常安装了几个常见的 Python 依赖,那你需要立刻提高警惕了。
今日,资深开发者 Daniel Hnyk 在社交平台 X 上紧急发文警告:流行 AI 工具库 LiteLLM 的 PyPI 官方发布版本 1.82.8 已被注入恶意代码,并着重强调“DO NOT UPDATE”(请勿更新)。
随后,OpenAI 联合创始人、前特斯拉 AI 主管 Andrej Karpathy 也亲自发帖确认此事,称之为“软件恐怖事件:litellm PyPI 供应链攻击。”
不要认为 LiteLLM 被“投毒”和 OpenClaw 没有任何关系。即使你没有主动安装 LiteLLM,只要你为 OpenClaw 安装的某个 Skill 或组件依赖了它,这个被污染的程序库就可能已经在你的项目中悄然运行。
这就是现代软件开发中典型的依赖链风险:你依赖一个工具,这个工具再依赖另一个库,而那个库又依赖更多东西。只要其中一环被“投毒”,安全风险就会顺着整条链条传导到你的项目。最棘手的是,一旦某个底层依赖库被攻击,你可能几乎没有任何感知。你不会看到报错,也不会收到提示,一切看起来都在正常运行,但在某一层你看不到的依赖深处,敏感信息可能已经被悄悄窃取。
01 投毒破坏力从何而来?
在了解潜在风险之前,我们先明确 LiteLLM 是什么。
LiteLLM 是大模型开发生态中几乎人手必备的关键适配层,其地位如同 AI 开发界的“通用翻译官”。在 GitHub 上,该项目 (BerriAI/litellm) 已获得超过 4 万颗星,月下载量高达 9700 万次,是连接开发者与上百个 LLM(如 OpenAI、Anthropic、Google Vertex 等)的底层枢纽。

它的核心价值在于将各大厂商复杂的 API 格式统一为 OpenAI 标准格式,使得开发者只需编写一套代码就能无缝切换和使用不同的大模型。
此外,在许多企业架构里,LiteLLM 不仅仅是一个库,更是作为“AI网关”管理着全公司的模型调用权限、成本追踪与负载均衡。
正因为 LiteLLM 处于这种“咽喉要道”的位置,此次供应链投毒事故的破坏力呈指数级放大。
攻击者在官方 PyPI 仓库发布的恶意版本(1.82.7 和 1.82.8)利用了 Python 包安装时的高权限初始化机制。这意味着,只要执行了 pip install litellm 或相关依赖的安装命令,恶意代码就会像病毒一样静默潜伏在系统中。
由于 LiteLLM 的主要职能就是处理各类 API 密钥,它自然成了窃取数字凭证的绝佳跳板:从 OpenAI、Anthropic 的 API 密钥,到 AWS、Azure 的云端访问密钥,再到 SSH 密钥甚至 Kubernetes 集群的 kubeconfig 文件,所有核心数字资产都在黑客的窃取范围内。
Andrej Karpathy 在帖文中也明确指出:“只需一条简单的 pip install litellm 命令,就可能导致 SSH 密钥、AWS/GCP/Azure 凭证、Kubernetes 配置、Git 凭证、环境变量(包含你所有的 API 密钥)、Shell 历史记录、加密钱包、SSL 私钥、CI/CD 密钥、数据库密码等敏感信息被窃取。”
这不仅意味着普通开发者的数据可能在毫无察觉的情况下被第三方截取或长期监控,更可能导致成千上万基于 LiteLLM 构建的企业级 AI 应用、自动化工作流及其背后的云端基础设施面临集体沦陷的风险。
02 投毒是怎么发生的?
那么,这次攻击究竟是如何发生的,又是如何被迅速发现的呢?
攻击的起点并非 LiteLLM 项目本身的代码漏洞,而是针对维护者的“人的漏洞”。黑客组织很可能通过凭证窃取或社会工程学手段,非法获取了 LiteLLM 维护者在 PyPI(Python 官方包索引)的账号权限。
这相当于黑客拿到了“官方通行证”,可以直接在受信任的渠道发布任何他们想要的代码。
此后,攻击者采取的策略非常阴险:他们并未大规模修改 LiteLLM 原有的复杂业务逻辑代码,因为这种变动很容易在自动化安全扫描或人工代码审查中露出马脚。相反,他们利用了 Python 环境中一个极具隐蔽性的特性——在软件包中植入了一个名为 litellm_init.pth 的文件。
这种以 .pth 结尾的文件,其设计初衷是在 Python 解释器启动时自动配置模块搜索路径,因此它在 site-packages 目录中拥有极高的执行优先级。
这意味着,只要你的开发环境中安装了这个恶意版本,哪怕你的代码里完全没有写过 import litellm 语句,只要你启动 Python 解释器运行任何程序,这段恶意代码就会被立刻唤醒并执行。
为了进一步躲避安全软件的实时监测,黑客将核心的攻击指令隐藏在了经过 Base64 编码的字符串中,使其看起来像一堆乱码。一旦恶意脚本随系统启动,它就会在后台疯狂扫描宿主机的环境变量和各种配置文件。从最核心的 OpenAI 或 Anthropic API 密钥,到 AWS、Azure 等主流云服务商的访问凭证,甚至是 SSH 私钥和 Kubernetes 集群配置,所有能证明你数字身份的资产都在其窃取清单之上。

整起事件中最戏剧性的部分在于:这场几乎“完美”的供应链投毒攻击,从发生到被社区揭发,仅用了不到一个小时。而核心原因竟在于攻击者的编程水平过低。
攻击者编写的恶意代码存在严重的内存泄漏问题,这很可能是仓促编写或测试不足导致的典型 Bug。当一位名为 Callum McMahon 的开发者在 Cursor 编辑器中使用相关插件时,恶意代码直接将系统内存耗尽导致程序崩溃。这种异常且剧烈的动静立刻引起了技术社区大牛们的警觉,众人顺藤摸瓜,迅速锁定了这个刚上线不到一小时的“毒包”。
这也正是 Andrej Karpathy 事后感到后怕的原因:如果黑客的代码写得更“优雅”一点、资源占用更低一点,这颗“毒药”完全有可能在成千上万台服务器和开发机中静默潜伏数月,直到将全球众多 AI 公司和开发者的 API Key 及云端资产盗取一空。
03 如何应对与防范?
根据最新进展,此次 LiteLLM 供应链攻击事件已进入清理与止损阶段。从官方团队发布的更新信息来看,PyPI 仓库中被黑客植入恶意代码的污染版本 v1.82.7 和 v1.82.8 已被正式删除。

这意味着,开发者现在通过 pip install 命令已经无法直接下载到这两个高危版本,从源头上阻断了恶意软件的进一步传播。
然而,官方的删除动作并不意味着受影响的开发者可以高枕无忧。如果你的本地开发环境或生产服务器在过去 24 小时内执行过更新,且目前仍停留在上述两个版本,威胁依然真实存在。由于恶意脚本利用 .pth 文件实现了“静默启动”,单纯的官方删包无法自动清除已经潜入你系统里的恶意代码。
因此,当前最紧要的操作是立即手动检查并清理本地环境:
- 检查版本:确认你环境中
litellm 的版本。如果为 1.82.7 或 1.82.8,立即处理。
- 彻底卸载:执行
pip uninstall litellm -y 卸载恶意版本。
- 安装安全版本:执行
pip install litellm==1.82.6 回滚到已知的安全版本。
- 检查依赖:审查你的项目依赖树,确保没有间接依赖到恶意版本。
那么,未来此类投毒事件还可能再度发生吗?如果 OpenClaw 的 Skill 里也被人用类似的方法投毒呢?或者触发条件更低一点:要是 OpenClaw 的 Skill 里就调用了某个被投毒的库呢?
答案是肯定的,而且很可能不止一次。 因为对于攻击者而言,这种供应链攻击的成本相对较低,而潜在收益却极高。一行恶意代码,只要成功混入一个像 LiteLLM 这样的高频基础依赖,就可能影响成千上万的项目;而防守方(开发者和社区)却需要为依赖链上的每一层库付出巨大的审计和监控成本。这本质上是一场长期的不对称博弈。
如果指望一个“一劳永逸”的根治方案,现实地说:目前没有。这类供应链投毒,其本质并非某个特定的软件漏洞,而是由现代软件高度依赖第三方开源库、以及 pip install 这种“默认信任”的分发机制所带来的一种系统性风险。
虽然无法被根治,但风险可以被大幅压缩到可控范围内。从行业趋势来看,几个明确的防御方向正在形成。例如,在 OpenClaw 这样的新一代 AI Agent 开发框架上,已经开始实践多层防御的思路。
OpenClaw 在近期版本中,逐步引入了沙箱隔离、权限收缩和运行时审计等机制:高风险操作被限制在独立的环境中执行;敏感环境变量被主动屏蔽;子代理运行在隔离沙箱内,避免直接接触主系统资源;同时还增加了检测异常行为模式的审计能力。
同时,围绕 OpenClaw 的最佳安全实践也在快速演进。越来越多的开发者开始默认开启沙箱模式、使用 Docker 等容器技术进行运行环境隔离、遵循最小权限原则,并对 API Key 等敏感凭证进行定期轮换,而不是像过去那样,把高权限凭证直接暴露给整个 Agent 运行环境。
总的来说,对于开发者而言,需要将思维方式从“默认信任”切换为“默认验证和怀疑”,并积极采用安全工具和实践。对于整个 开发者社区 而言,此类事件的频繁讨论和知识分享至关重要,它有助于提升整个生态的安全水位。你可以到 云栈社区 的相关板块,与更多同行交流此类安全事件的应对经验。
在这个阶段,决定 AI 应用体验上限的,或许是功能的丰富性;但决定其风险下限、乃至生存基础的,则一定是安全性。