文章总结: 2026年4月22日JFrog披露PyPI官方包Xinference遭供应链投毒,恶意版本2.6.0-2.6.2被植入两阶段窃密木马,导入即自动收集主机信息、云凭证、密钥文件等敏感数据并外发。事件疑似与TeamPCP攻击团伙相关,建议受影响用户立即隔离主机、轮换密钥、清理环境,并加强依赖管理与安全检测。 综合评分: 85 文章分类: 供应链安全,漏洞预警,恶意软件,安全运营,云安全
突发:Xinference PyPI 遭投毒!速查
微步在线研究响应中心
2026年4月23日 11:17 北京
在小说阅读器读本章
去阅读
2026 年 4 月 22 日,JFrog 安全研究团队披露PyPI 官方包 xinference 遭供应链投毒,恶意版本 2.6.0、2.6.1、2.6.2 被植入窃密木马,导入即执行恶意脚本,该脚本无持久化的快速窃取云平台和本地主机密钥信息。JFrog 安全研究团队称该事件与近期频发的TeamPCP 多生态供应链攻击同源,但TeamPCP当日发推特否认,并称该事件为模仿犯罪。
一、Xinference 项目基础信息
Xinference(Xorbits Inference) 是 Xorbits 团队开发的开源分布式 AI 模型推理框架,主打一键部署、高性能、多模型兼容,是 AI 开发与私有化大模型部署的主流工具,PyPI 周下载量达数万级。
● 核心能力:支持 LLM、多模态、TTS/STT、Embedding 等模型推理,兼容 vLLM、Transformers、llama.cpp 等后端,提供 REST API 与 OpenAI 兼容接口,支持分布式多机推理与高并发优化。
● 本次受攻击情况:攻击者劫持正版包发布权限,直接向 PyPI 上传恶意版本;恶意代码嵌入xinference/__init__.py,导入、CLI 启动、下游依赖调用均会触发执行;受影响版本已被维护者紧急下架(yanked)。
二、事件核心概况与时间线
核心信息
● 披露时间:2026 年 4 月 22 日
● 攻击目标:PyPI 正版 xinference 包
● 恶意版本:2.6.0、2.6.1、2.6.2
● 攻击团伙:疑似 TeamPCP(团伙否认,称系模仿者)
● 攻击类型:正版包劫持 + 供应链投毒
● 触发方式:包导入即执行
● 核心目的:纯窃取密钥 / 凭证 / 机密,无勒索、无后门、无远控、无持久化
关键时间线
1. 攻击者窃取维护者 / CI/CD 凭证,登录 PyPI 上传 xinference 2.6.0/2.6.1/2.6.2 恶意版本;
2. 用户发现异常行为,并在项目 GitHubissue询问开发者,项目维护者确认并紧急下架问题版本;
3. JFrog 发布技术分析报告,并确认该事件与 TeamPCP 系列攻击同源;
4. TeamPCP 通过 Twitter 否认涉案,声明系第三方冒用其标识作案。
三、技术执行流程:两阶段窃密木马详解
植入与触发
恶意代码嵌入xinference/__init__.py,导入包即触发执行,无用户交互、无明显异常,隐蔽性极强。
Stage 1:加载器与数据外发
● 内嵌 base64 编码载荷,通过subprocess.Popen启动独立 Python 后台进程,屏蔽 stdout/stderr,隐藏恶意行为;
● 解码并释放 Stage 2 收集器,执行后将结果写入临时文件,压缩为love.tar.gz;
● 通过 curl POST 上传Stage2中收集并打包压缩的窃密信息至攻击者服务器https://whereisitat.lucyatemysuperbox.space/,并携带自定义头X-QT-SR: 14;
● 执行完毕自动清理临时文件,不留痕迹。
Stage 2:主机侦察与机密收集
全面搜刮主机与云环境敏感数据,覆盖:
● 主机基础信息:hostname、whoami、ip、路由、环境变量;
● 密钥凭证:SSH 私钥、TLS 密钥(.pem/.key/.p12)、Git 凭证、AWS/Azure/GCP 云凭证;
● 配置文件:.env 系列、.npmrc/.pypirc、Docker 认证、K8s 服务账户令牌;
● 基础设施:Terraform、Helm、WireGuard 配置;
● 其他:数据库密码、加密货币钱包、本地账户数据。
AWS 专项利用逻辑
载荷内置 AWS 专属代码,尝试获取 IMDSv2 令牌、窃取 IAM 角色凭证,调用secretsmanager.ListSecrets、ssm.DescribeParameters接口,定向窃取云平台机密。
总体这个脚本窃取了主机与云环境中的敏感信息:包括用户与系统身份信息(hostname、whoami、网络与路由、环境变量)、SSH 相关密钥与配置(用户私钥、authorized_keys、/etc/ssh 主机密钥)、各类凭据文件(.env、Git/AWS/GCP/Azure/Docker/Kubernetes 配置与 token、数据库配置与口令文件、/etc/shadow 等)、CI/基础设施与证书材料(Terraform、Ansible、WireGuard、SSL/PEM/KEY)、命令历史与常见 API key/webhook 线索,以及加密货币钱包与私钥文件(Bitcoin/Ethereum/Solana 等);同时它还会主动探测云元数据服务(169.254.169.254/169.254.170.2)抓取临时云凭证并尝试枚举 AWS Secrets Manager/SSM。
四、应急处置指南
若安装 / 导入过 xinference 2.6.0–2.6.2,立即视为环境已沦陷,按以下步骤处置:
1. 隔离主机
● 隔离受影响主机,断开敏感网络连接;
● 检查出站流量与 DNS 查询,阻断到whereisitat.lucyatemysuperbox.space的访问。
2. 全量密钥轮换
轮换所有泄露风险密钥:SSH 私钥、云厂商 AK/SK、K8s 令牌、Docker 仓库凭证、PyPI/npm/Cargo 发布令牌、数据库密码、.env 密钥、TLS 证书、CI/CD 凭证、加密货币钱包助记词。
3. 日志审计
核查 AWS CloudTrail、K8s 审计日志、Git 托管日志、镜像仓库操作记录、Shell 历史与认证日志,确定泄露范围与时间窗口。
4. 清理与重建
# 卸载恶意包、清理缓存
pip uninstall xinference
pip cache purge
# 重装安全版本(2.6.0之前的安全版本)
pip install xinference==2.5.0
五、IOC
恶意包版本
● xinference==2.6.0、2.6.1、2.6.2
网络 IOC
● 域名:whereisitat.lucyatemysuperbox.space
● URL:hxxps://whereisitat.lucyatemysuperbox.space/
● 自定义 HTTP 头:X-QT-SR: 14
文件与哈希 IOC
● xinference/init.py SHA256:e1e007ce4eab7774785617179d1c01a9381ae83abfd431aae8dba6f82d3ac127
● Stage 1 解码后 SHA256:077d49fa708f498969d7cdffe701eb64675baaa4968ded9bd97a4936dd56c21c
● Stage 2 解码后 SHA256:fe17e2ea4012d07d90ecb7793c1b0593a6138d25a393192263e751660ec3cd0
● 临时归档文件:love.tar.gz
● 文本标记:# hacked by teampcp
六、事件总结与防御建议
核心结论
1. 本次 xinference 攻击是轻量化窃密变体,无持久化、无加密,更隐蔽、更难检测,以快速窃取密钥为唯一目的;
2. 正版包劫持风险远超钓鱼包,开发者对官方版本信任度高,一旦被投毒,扩散速度极快、影响范围极广。
防御建议
1. 依赖管理:固定生产环境依赖版本,避免自动升级,仅使用官方签名包;
2. 权限管控:最小化 PyPI/GitHub 维护者权限,启用双因素认证,定期轮换 CI/CD 凭证;
3. 检测防护:部署供应链安全工具,监控 PyPI 恶意版本,拦截 IOC 相关出站流量;
4. 应急响应:建立包投毒应急流程,定期开展密钥轮换与环境审计,降低攻击影响。
供应链安全已成为 AI 与云原生环境的核心薄弱点,TeamPCP 系列攻击警示开发者与企业:信任不能替代验证,每一次依赖更新都需严格校验。
参考链接:
https://research.jfrog.com/post/xinference-compromise/
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:微步在线研究响应中心 《突发:Xinference PyPI 遭投毒!速查》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论