当大家忙着追新模型、新 agent 时,一个低调却关键的 AI 基础设施组件出了事。10 月 23 日前后,LiteLLM 的发布流水线被攻破——攻击者把一个恶意的 v1.107.0 包推到了 PyPI 和 Docker 上,里面藏着窃取凭证的木马。这是一起典型的"供应链投毒",而 LiteLLM 恰恰是无数 AI 应用用来统一调用各家大模型的关键中间件。
攻击是怎么发生的
LiteLLM 是很多团队的"模型网关":一行配置就能在 OpenAI、Anthropic、Google 等多家 API 之间切换。正因为它处在调用链的核心,一旦它的发布环节被控制,恶意代码就能顺着"谁用了这个库"一路扩散。
这次攻击者做的,是往正式发布版本里塞入凭证窃取逻辑。更阴险的是,它针对的是"未固定版本"(unpinned versions)的用户——这些人图方便用了浮动版本号,结果拉到的不是官方干净版,而是被替换的恶意版。官方随后要求所有跑过未固定版本的用户,立即轮换(rotate)他们的密钥。
为什么 AI 工具链特别脆弱
这类供应链攻击在软件界不算新鲜,但对 AI 生态尤其危险,原因有三:
其一,AI 应用大量依赖 Python 生态的第三方库,而很多团队为了快速迭代,习惯用 latest 或浮动版本,少了"锁版本"这一道防线;其二,AI 中间件往往持有大量 API key 和凭证,一旦失守,泄露的不是一台机器,而是通往各路模型账户的钥匙串;其三,AI 工具链更新极快,安全审计常常追不上发布节奏。
开源中间件的安全责任
这起事件也把一个尴尬的现实摆上台面:像 LiteLLM 这样的关键中间件,往往由少数维护者业余维护,却被成千上万个生产系统依赖。维护者精力有限,发布流水线的安全投入更难跟得上使用规模——攻击者恰恰盯的就是这个落差。
责任不该只压在维护者身上。用它的企业,其实有动力也有能力反哺:资助项目、参与代码审查、帮忙加固 CI/CD、提供安全扫描。把关键开源组件当成"免费的公共品"白用,出了事再指责维护者,并不公平,也不解决问题。
技术层面的改进路径也比较清晰:软件物料清单(SBOM)让依赖可追溯,发布产物做签名与校验,构建过程尽量可复现,再加上对关键包的异常发布监控。这些不是新概念,只是 AI 工具链跑得太快,很多团队还没来得及补上。
对 AI 行业来说,这次投毒是个提醒:模型能力可以一周一迭代,但脚下的供应链安全,欠的账迟早要还。
给用户和开发者的实在提醒
这起事件给所有用 AI 工具链的团队上了一课,几条很具体:
- 锁版本:生产依赖务必固定版本号,别让构建系统自动拉"最新";
- 勤轮换:核心 API key 定期更换,假设"可能已被碰过";
- 查来源:对关键中间件,尽量从官方源、带校验和的产物安装,警惕镜像与转发;
- 最小权限:给 AI 中间件的凭证只开它真正需要的范围,降低一旦泄露的爆炸半径。
LiteLLM 作为被广泛采用的开源项目,此次事件也提醒整个生态:AI 基建的"水管"和"水龙头"同样需要安全投入。模型再强,如果脚下的供应链是漏的,跑出来的也只能是脏水。