文章总结: 火绒安全团队发现Python开源组件Litellm遭遇供应链攻击,受影响版本为1.82.7和1.82.8,攻击者TeamPCP在PyPI安装包植入恶意代码,通过三阶段攻击窃取系统信息、云凭证、API密钥等敏感数据并建立持久化后门,文档提供了详细的攻击技术分析、IOC指标、修复步骤和防范建议,强调应立即降级至1.82.6版本、轮换所有凭据并进行全面检查。 综合评分: 88 文章分类: 供应链安全,恶意软件,漏洞预警,AI安全,安全大事件
开发者注意!Litellm遭遇供应链攻击 火绒已可全面拦截
火绒安全
2026年3月25日 03:35 北京
火绒安全团队于2026年3月24日发现并捕获了针对Python开源组件Litellm的恶意供应链攻击事件,本次攻击通过在组件安装包中植入恶意代码实现攻击,影响范围广泛,风险等级极高。目前,火绒安全产品可对上述被污染模块进行查杀、拦截。
查杀图
拦截图
拦截图
一、事件概述
| | | | — | — | | 项目 | 详情 | | 发现日期 | 2026-03-24 | | 受影响版本 | 1.82.7/1.82.8 | | 发布时间 | 2026-03-24(均绕过GitHub release直发PyPI) | | 安全版本 | ≤1.82.6(最后干净版本发布于 2026-03-22) | | PyPI状态 | 已从PyPI删除 | | 月下载量 | ~9500万 | | GitHub Stars | ~4万 |
二、攻击者
TeamPCP——同期发起了多起供应链攻击(来源:[Endor Labs](参考链接1),[Wiz](参考链接2)):
- 2026-03-19: Trivy (Aqua Security) 漏洞扫描器
- 2026-03-23: Checkmarx KICS GitHub Action
- 2026-03-24: Litellm
三、影响范围
Litellm是AI基础设施的核心组件:
- 统一接口:提供100+LLM providers的OpenAI兼容接口
- API Gateway:企业级LLM代理服务
- 月下载量 ~9500 万,GitHub Stars ~4 万(来源:[GitHub](参考链接3)、[Endor Labs](参考链接4))
受影响场景(来源:[GitHub Issue #24512](参考链接5)):
- 本地开发机器
- CI/CD 流水线
- Docker 容器
- 生产服务器
- Litellm Proxy用户(风险最高):持有所有LLM provider的API keys
四、恶意代码位置
1.82.7版本(来源:[Endor Labs](参考链接6))
- 文件:
litellm/proxy/proxy\_server.py第 128-139 行 - 注入方式:12行base64混淆代码插入在REALTIME_REQUEST_SCOPE_TEMPLATE字典和showwarning函数之间
- 触发方式:import litellm时执行
- GitHub源码对应位置不含恶意代码,注入发生在wheel构建/发布阶段
1.82.8版本(更危险)(来源:[GitHub Issue #24512](参考链接7),[Endor Labs](参考链接8),[FutureSearch](参考链接9))
- 文件 1:litellm/proxy/proxy_server.py(同 1.82.7,payload 在第 130 行)
- 文件 2:litellm_init.pth(34,628 bytes)
- 触发方式:任何Python启动自动执行,无需import
- 绕过GitHub release:未打tag,直发PyPI
- 附带 bug:.pth的subprocess.Popen 会触发子进程再次执行 .pth,形成指数级 fork bomb,曾导致中招机器崩溃(来源:[FutureSearch](参考链接10))
五、技术分析:三阶段攻击
Stage 1: 信息收集
目标列表(332行Python代码,来源:[Endor Labs](参考链接11)):
-
系统信息:hostname, whoami, uname, IP, route
-
环境变量:printenv(所有 API keys、secrets、tokens)
-
SSH keys:id_rsa, id_ed25519, id_ecdsa, id_dsa, authorized_keys, known_hosts, config
-
Git 凭据:.gitconfig, .git-credentials
-
云凭证:
-
AWS: ~/.aws/credentials, IMDS role credentials, Secrets Manager, SSM
-
GCP: application_default_credentials.json, gcloud configs
-
Azure: ~/.azure/ 目录树
-
Kubernetes: ~/.kube/config, /etc/kubernetes/*.conf, 全 namespace secrets
-
Docker configs:~/.docker/config.json
-
数据库:.pgpass, my.cnf, redis.conf, .mongorc.js
-
加密货币:Bitcoin (wallet.dat), Ethereum keystores, Solana validator keypairs, Cardano signing/verification keys, Litecoin, Dogecoin, Zcash, Dash, Monero, Ripple + 各币种 config 文件
-
SSL/TLS私钥:/etc/ssl/private/,Let’s Encrypt .pem 和 .key 文件
-
CI/CD:terraform.tfvars, .gitlab-ci.yml, Jenkinsfile, .drone.yml
-
Shell历史:bash, zsh, mysql, postgres, redis
-
.env文件:递归搜索 /home, /root, /opt, /srv, /var/www, /app, /data 等目录,深度 6 层
Stage 2: 加密与外泄
(来源:[GitHub Issue #24512](参考链接12),[Endor Labs](参考链接13))
-
收集数据→临时文件
-
openssl rand→生成32-byte AES-256 session key
-
openssl enc -aes-256-cbc -pbkdf2→加密数据
-
openssl pkeyutl -encrypt→用 RSA-4096公钥加密AES key
-
打包为tpcp.tar.gz
-
POST到https://models.litellm.cloud/(注意:非 litellm.ai 官方域名)
Stage 3: 持久化与横向移动
(来源:[Endor Labs](参考链接14),[FutureSearch](参考链接15))
本地持久化:
- 后门:
~/.config/sysmon/sysmon.py - 服务:
~/.config/systemd/user/sysmon.service - 显示名:”System Telemetry Service”
- C2:
https://checkmarx.zone/raw(每 50 分钟轮询,time.sleep(3000)) - Kill switch:响应包含 “youtube.com” 则停止
- 初始延迟:5 分钟(time.sleep(300))
- 二进制路径:/tmp/pglog(伪装成 PostgreSQL 进程)
Kubernetes 横向移动:
- 检测到 /var/run/secrets/kubernetes.io/serviceaccount/token时触发
- 枚举集群所有节点
- 每个节点创建privileged alpine:latest pod
- Pod名称:
node-setup-{node\_name} - 部署到kube-system namespace
- 请求hostPID、hostNetwork,privileged: true
- 挂载整个host根文件系统到/host
- Pod内chroot到host并安装同样的持久化后门
六、C2 服务器
(来源:[Endor Labs](参考链接16))
| | |
| — | — |
| 域名 | 用途 |
| models.litellm.cloud | 数据外泄(tpcp.tar.gz) |
| checkmarx.zone | 持久化 C2(下载二进制) |
七、IOC 指标
文件(来源:[GitHub Issue #24512](参考链接17))
| | | | | — | — | — | | 文件名 | 大小 | SHA256 | | litellm_init.pth | 34,628bytes | 71e35aef03099cd1f2d6446734273025a163597de93912df321ef118bf135238 |
持久化路径(来源:[Endor Labs](参考链接18),[FutureSearch](参考链接19))
- 本地:
~/.config/sysmon/sysmon.py+~/.config/systemd/user/sysmon.service - Kubernetes Pod 内:
/root/.config/sysmon/sysmon.py(chroot 后安装) /tmp/.pg\_state(状态文件)/tmp/pglog(C2 下载的二进制)
八、修复步骤
1. 检查
```bashpip show litellm | grep Versionfind ~/.local -name "litellm_init.pth" 2>/dev/nullfind / -name "sysmon.py" 2>/dev/null```
2. 清除
```bashpip uninstall litellm -yfind $(python3 -c "import site; print(':'.join(site.getsitepackages()))") \ -name "litellm_init.pth" -delete 2>/dev/nullrm -rf ~/.config/sysmon/pip cache purgerm -rf ~/.cache/uv```
3. 降级
```bashpip install litellm==1.82.6```
4. 轮换凭据(必须)
- 所有LLM API keys
- SSH keys
- 云服务凭据
- 数据库密码
- Kubernetes configs
九、防范建议
-
锁定版本:
litellm>=1.82.0,<1.82.7 -
使用lock文件
-
定期审计pth文件:任何>1KB的 .pth 文件都可疑
-
启用PyPI安全通知
-
网络层拦截:阻止对models.litellm.cloud和checkmarx.zone的出站连接
6. 源码vs wheel比对:PyPI wheel的SHA256应与源码构建产物一致
综上所述,此次攻击事件不同于常规恶意程序的单点破坏,它可直接锚定企业AI业务的核心枢纽,借助开源组件的超高普及率实现大范围触达,能批量窃取企业核心的大模型API密钥、云服务凭证、集群配置等核心资产,造成不可逆损失。同时,本次事件也暴露了当前AI开源生态中供应链安全防护的核心短板——攻击者通过安装包构建环节的代码注入,能绕过常规的源码审计,触达数千万终端与服务器,其隐蔽性、扩散性与破坏性,远高于常规网络攻击。
火绒安全在此提醒广大用户:及时更新火绒安全软件病毒库并开启实时防护,切勿使用来源不明的组件安装包;日常开发与运维中,严格锁定开源依赖的安全版本,做好依赖包的完整性校验,杜绝盲目更新未经安全审计的版本;核心业务场景需定期轮换各类密钥与凭证,落实最小权限管控,建立常态化的开源组件安全审计机制,从源头筑牢供应链攻击的防护防线。
参考链接:
参考链接1:https://www.endorlabs.com/learn/teampcp-isnt-done
参考链接2:https://www.wiz.io/blog/teampcp-attack-kics-github-action
参考链接3:https://github.com/BerriAI/litellm
参考链接4:https://www.endorlabs.com/learn/teampcp-isnt-done)
参考链接5:https://github.com/BerriAI/litellm/issues/24512
参考链接6:https://www.endorlabs.com/learn/teampcp-isnt-done
参考链接7:https://github.com/BerriAI/litellm/issues/24512
参考链接8:https://www.endorlabs.com/learn/teampcp-isnt-done
参考链接9:https://futuresearch.ai/blog/litellm-pypi-supply-chain-attack/
参考链接10:https://futuresearch.ai/blog/litellm-pypi-supply-chain-attack/
参考链接11:https://www.endorlabs.com/learn/teampcp-isnt-done
参考链接12:https://github.com/BerriAI/litellm/issues/24512
参考链接13:https://www.endorlabs.com/learn/teampcp-isnt-done
参考链接14:https://www.endorlabs.com/learn/teampcp-isnt-done
参考链接15:https://futuresearch.ai/blog/litellm-pypi-supply-chain-attack/
参考链接16:https://www.endorlabs.com/learn/teampcp-isnt-done
参考链接17:https://github.com/BerriAI/litellm/issues/24512
参考链接18:https://www.endorlabs.com/learn/teampcp-isnt-done
参考链接19:https://futuresearch.ai/blog/litellm-pypi-supply-chain-attack/
HUORONG
火绒安全成立于2011年,是一家专注、纯粹的安全公司,致力于在终端安全领域为用户提供专业的产品和专注的服务,并持续对外赋能反病毒引擎等相关自主研发技术。多年来,火绒安全产品凭借“专业、干净、轻巧”的特点收获了广大用户的良好口碑。火绒企业版产品更是针对企业内外网脆弱的环节,拓展了企业对于终端管理的范围和方式,提升了产品的兼容性、易用性,最终实现更直观的将威胁可视化、让管理轻便化,充分达到保护企业信息安全的目的。
求点赞
求分享
求喜欢
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:火绒安全 《开发者注意!Litellm遭遇供应链攻击 火绒已可全面拦截》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。








评论