一、事件概述
近期,Python 库litellm(一款用于统一调用多家大模型 API 的工具,GitHub 星数超 4 万,月下载量超 9500 万次)遭遇严重供应链投毒攻击。攻击者在其 PyPI 仓库的1.82.7和1.82.8版本中植入恶意代码,可窃取用户机器上的 SSH 密钥、云服务凭证(如 AWS、GCP)、Kubernetes 密钥、数据库密码、加密货币钱包、.env文件及 Shell 操作历史等敏感信息,并通过 AES 加密、RSA 封装后发送至攻击者控制的域名。
二、攻击技术细节
(一)恶意功能模块
- 信息窃取
- SSH 密钥与云凭证:窃取 AWS、GCP、Azure 等云服务的 SSH 密钥和云凭证。
- Kubernetes 密钥:收集 Kubernetes 所有命名空间的
Secret。 - 敏感文件与操作记录:获取
.env文件、数据库密码、加密货币钱包、SSL 私钥、CI/CD 密钥及 Shell 操作历史。
- 隐蔽执行在
1.82.8版本中,攻击者利用 Python 的.pth文件机制(位于site-packages目录下的.pth文件会在 Python 解释器启动时自动执行),实现无需import库、无需调用函数即可在后台静默触发窃取操作。 - 数据加密与外发窃取的所有数据经 AES 加密、RSA 公钥封装后,发送至攻击者控制的仿冒域名
models.litellm.cloud。
(二)攻击链传导

攻击者组织TeamPCP在 5 天内横跨 5 个生态系统(GitHub Actions、DockerHub、NPM、OpenVSX、PyPI),通过以下步骤实施攻击:
- 先攻破安全工具
Trivy,获取其 CI/CD 流水线凭证。 - 利用上述凭证窃取
litellm的 PyPI 发布令牌。 - 向 PyPI 推送带毒版本
1.82.7和1.82.8。
三、事件影响
(一)影响范围
- 直接影响:安装
litellm 1.82.7或1.82.8版本的用户,其敏感信息面临泄露风险。 - 间接影响:
litellm被 2000 多个 Python 包依赖,且存在于 36% 的云环境中,依赖链深处的用户可能在不知情的情况下受影响。
(二)发现契机
此次攻击因攻击者代码中的ForkBomb漏洞被意外发现 —— 恶意代码触发无限创建 Python 子进程,导致机器内存被撑爆,从而暴露了攻击行为。
四、应对与防范建议
(一)紧急处置(针对已安装受影响版本的用户)
- 立即检查
litellm版本,若为1.82.7或1.82.8,需假设所有敏感凭证已泄露。 - 轮换所有 SSH 密钥、云服务凭证、数据库密码等敏感信息。
- 审查受影响环境中发布的所有产物,从已知安全的镜像重建系统。若涉及 Kubernetes,需排查横向扩散风险。
(二)长期防范
- 依赖管理:
- 锁定依赖版本,使用版本号 “等于” 而非 “大于等于” 进行依赖声明。
- 审计完整依赖链,而非仅关注直接引入的包。
- CI/CD 安全:最小化 CI/CD 环境权限,避免赋予构建流水线超出必要的权限。
- 开发理念:参考 Karpathy 的建议,优先选择大模型直接生成简单功能代码,减少对未知依赖的引入,重新评估依赖的安全风险成本。
原创文章,作者:产品大法师
,如若转载,请注明出处:https://www.pmtemple.com/python/18366/
微信扫一扫
支付宝扫一扫