3月24日,PyPI上一个热门AI工具被投毒。LiteLLM这个统一调用上百个大语言模型的Python库,两个版本1.82.7和1.82.8直接成了钱包窃贼。攻击者拿下维护者账号,短短几小时就把恶意代码推了上去。
事情发生在UTC时间10:39到16:00之间。LiteLLM每月下载量高达9600多万次,开发者环境里到处是密钥。1.82.7需要导入litellm.proxy才触发载荷,1.82.8更狠,直接扔了个litellm_init.pth文件进Python安装目录。Python启动时自动执行.pth里的代码,机器一开Python就中招。FutureSearch统计显示,46分钟内下载了46996次,其中1.82.8占了32464次。下游还有2337个PyPI包依赖它,88%当时允许这个版本范围。
恶意载荷直奔加密资产而去。SafeDep逆向后发现,它扫Bitcoin的wallet*.dat和配置文件,Ethereum的keystore目录,Solana的~/.config/solana/id.json、validator keypair、vote account keys和Anchor部署目录。Solana验证者文档里写得清楚,授权提款密钥一旦丢了,攻击者就能完全控制操作和奖励。载荷还挖SSH密钥、环境变量、AWS/GCP/Azure凭证、Kubernetes全namespace的secrets。找到有效AWS密钥后,它继续查Secrets Manager和SSM Parameter Store。甚至在kube-system里创建特权pod,用sysmon.py和systemd单元实现持久化。
加密团队最怕这种组合拳。一台机器同时泄露钱包文件、passphrase、部署密钥和CI token,钱包被清空、恶意合约上线、签名者被冒用,全都可能。LiteLLM这次是TeamPCP链条的最新一环,此前已波及Trivy等工具,目标就是密钥丰富的开发基础设施。
DSPy团队确认自己约束是>=1.64.0,新安装在窗口期很可能拉到毒版本。他们迅速提醒用户固定版本。LiteLLM官方事后页面也直言,通过未固定传递依赖拉到1.82.7或1.82.8的,都得当环境已暴露处理。PyPI在UTC 11:25左右隔离了这两个版本,LiteLLM撤回恶意构建,轮换了凭证,还请来Mandiant。目前最新可见版本是1.82.6。
当前行情里,SOL报$87.16(24h跌5.59%),验证者节点安全更显刺眼。BTC现报$68,908(24h跌3.37%),ETH$2,061(24h跌5.20%),市场波动下,离线冷钱包和严格密钥隔离成了硬需求。
这次攻击暴露了供应链的脆弱。维护者账号一丢,整个生态跟着遭殃。PyPI的Trusted Publishing已获4.5万个项目采用,用OIDC短时身份替换长期token,这次事件让更多人没法再无视切换的必要性。加密项目该加速角色分离:验证者提款密钥彻底离线,部署签名者隔离,云凭证用短时,依赖图锁死。
受影响的团队现在得行动。检查3月24日是否安装或升级过LiteLLM,审计系统里有没有litellm_init.pth,轮换所有可能暴露的密钥,撤销并重发云凭证,确认验证者材料没在受感染主机上可达。Docker官方镜像用户据说没中,但pip安装的都得自查。
攻击者清楚知道该找哪些离链文件。载荷搜索路径直指钱包、部署密钥和集群控制面。检测快是好事,PyPI隔离及时,LiteLLM响应也算迅速。可持久化已植入,K8s横向移动完成,数据外传后,攻击者随时能动手。共享运维环境里的交易所、桥接团队或RPC提供商,一旦构建runner中招,整个控制平面就危险。
加密圈子向来靠信任跑,但这次提醒大家,依赖树里任何一个节点松动,都可能让热钱包、半热验证器材料直接暴露。轮换密钥、固定版本、审计构建环境,这些老生常谈现在成了必须立刻落地的动作。否则,下一个被清空的,不一定只是测试账户。