文章总结: 2026年4月22日,开源AI框架Xinference的PyPI官方包v2.6.0至v2.6.2版本遭遇供应链投毒攻击,攻击者在init.py文件中植入了窃密木马。该木马采用分阶段执行,第一阶段释放并执行第二阶段载荷,后者大规模窃取SSH、云凭证、Kubernetes配置、数据库密码、加密货币钱包等敏感信息。攻击者留下#hackedbyteampcp标记,但该组织否认参与,存在假旗操作可能。报告提供了紧急隔离、凭证轮换、代码检查等防范建议。 综合评分: 94 文章分类: 供应链安全,漏洞分析,恶意软件,威胁情报,应急响应
Xinference 供应链安全事件调查与分析报告
高级威胁研究院 高级威胁研究院
360威胁情报中心
2026年4月27日 15:08 北京
在小说阅读器读本章
去阅读
Xinference(Xorbits Inference)是一款流行的开源 AI 模型部署与服务框架,支持开发者通过极简命令快速部署大语言、语音及多模态模型。它对外提供兼容 OpenAI 的 API,并深度集成于Dify、LangChain 等主流 AI 生态工具链中。由于其核心用户多为掌握企业核心代码、高权限云凭证与高算力资源的 AI 研发人员,因此极易成为黑客实施软件供应链投毒的高价值目标。
2026年4月22日,Xinference 官方 PyPI 发布包被披露遭遇供应链投毒攻击。攻击者在 V2.6.0、V2.6.1 及V2.6.2 三个版本的核心初始化文件 \_\_init\_\_.py 中植入了窃密木马。
恶意样本中留有 “# hacked by teampcp” 文本标记,表面指向近期活跃于开源供应链攻击的 TeamPCP 组织,但该组织随后公开否认参与此次事件,存在假旗操作的可能性。目前归属研判尚未形成确定性结论,我们将持续跟踪关注。
01
攻击活动分析
2026年4月22日,Xinference 官方软件包被披露遭遇供应链投毒事件。攻击者将恶意载荷植入包内 __init__.py 文件,通过篡改初始化逻辑实现恶意代码随安装或导入过程被触发。随后,Xinference 项目开发人员在 GitHub Issues 回复中确认了该安全事件,进一步证实官方发布包在特定版本范围内已受到污染。
图1 Github中Issues回复示例
为进一步还原攻击活动时间线,我们对 xinference-2.6.0.tar.gz、xinference-2.6.1.tar.gz 与 xinference-2.6.2.tar.gz 三个受影响版本压缩包进行了取样分析,并提取了归档文件内相关文件的最近修改时间(mtime, UTC)。分析结果显示,攻击者最早在 2026年4月21日 20:08:49 UTC 已完成对恶意文件的植入。
表1 三个版本文件的最近修改时间
| | | | | — | — | — | | MD5 | 文件名 | 最后修改时间(mtime UTC) | | 971670c10eff28339a085ca50a600e35 | xinference-2.6.0.tar.gz | 2026-04-21 20:08:49 – 2026-04-21 20:10:51 | | 9b3257e45b27a6bbe4e240e41a3a306f | xinference-2.6.1.tar.gz | 2026-04-21 21:01:20 – 2026-04-21 21:03:30 | | 484067fd6232f7cdd7b664b33857fc2c | xinference-2.6.2.tar.gz | 2026-04-21 21:07:50 – 2026-04-21 21:10:00 |
此外,三个受影响版本中的恶意代码虽然使用相同的恶意编码载荷,但在植入位置与执行方式上存在显著差异,呈现出攻击者持续迭代优化的特征。
表2 三个版本植入恶意代码对比
| | | | | | — | — | — | — | | 对比维度 | V2.6.0 | V2.6.1 | V2.6.2 | | 植入位置 | 模块顶层作用域 | _install() 函数内部 | _install() 函数内部 | | 执行方式 | subprocess.Popen() 子进程异步执行 | exec() 当前进程同步执行 | subprocess.Popen() 子进程异步执行 | | 隐蔽性 | 较低(顶层明文可见) | 较高(嵌入合法函数体) | 较高(嵌入合法函数体) |
图2 xinference V2.6.0版本__init__.py文件恶意代码示例
图3 xinference V2.6.1版本__init__.py文件恶意代码示例
图4 xinference V2.6.2版本__init__.py文件恶意代码示例
对恶意载荷进行分析确认,该恶意采用了分阶段执行的方式:第一阶段负责载荷释放、结果打包与外传;第二阶段负责在受害主机中大范围搜集敏感信息与凭证材料。
第一阶段:
第一阶段脚本开头即包含明显的攻击者标记 “# hacked by teampcp”。其主要功能将内嵌BASE64内容解码,通过 subprocess.run() 调用当前 Python 解释器执行这段解码后的第二阶段脚本,标准输出被写入临时文件 f。如果收集到内容,就用 tar -czf 打包为 love.tar.gz。最后使用自定义头“X-QT-SR”,通过 curl 以二进制流上传到C2域名 https[:]//whereisitat[.]lucyatemysuperbox.space/。
图5 阶段1恶意代码示例
第二阶段:
第二阶段样本核心目标是批量搜集主机、容器、云凭证、密钥、配置、历史记录和区块链钱包材料。
-
主机与网络环境探测:收集主机名、当前路径、执行身份、内核、网卡、路由及全部环境变量,进行主机画像。
-
SSH 凭证与主机密钥窃取:获取用户 SSH 私钥、主机私钥和信任关系信息;
-
开发者与源码仓库凭证窃取:搜集了 .git-credentials 及各类包管理与依赖仓库的认证文件;
-
环境变量与
.env配置搜集:获取数据库密码、应用密钥、JWT secret、第三方 API Token; -
AWS 凭证搜集与云元数据打点:从本地凭证、容器角色凭证、实例角色凭证三条路径拿 AWS 访问权限;
-
Kubernetes 凭证与集群秘密搜集:获取集群访问令牌、命名空间 secrets、控制面配置;
-
GCP / Azure / Docker 凭证搜集:窃取云平台访问令牌与镜像仓库认证信息;
-
数据库、消息与系统侧敏感配置搜集:窃取数据库与基础设施认证数据;
-
VPN、IaC 与证书材料搜集:获取基础设施部署凭据、TLS 私钥与网络接入配置;
-
Webhook/Token 模式搜索:递归扫描并窃取目标系统中的 Slack/Discord Webhook 地址及硬编码的 API 密钥、访问令牌等敏感凭证;
-
加密货币钱包与节点密钥窃取:针对数字资产钱包、验证者节点和签名密钥;
-
系统账户与登录痕迹搜集:收集用户清单、密码哈希与登录成功记录。
图6 阶段2恶意代码示例
02
归属研判
在第一阶段样本中,攻击者留有明确的文本标记 “# hacked by teampcp”,从字面上看,该标记指向近期活跃于开源供应链攻击领域的 TeamPCP 组织。
图7 阶段1恶意代码文本标记
TeamPCP 是一个高级威胁组织,近期发起了一系列精心策划的供应链攻击。该组织通过攻陷 Trivy、KICS 和 LiteLLM 等主流开源工具,隐蔽植入了用于窃取凭证的恶意软件。为规避安全检测,他们综合采用了凭证收集、Kubernetes 环境内的横向移动以及音频隐写等复杂攻击技术。此外,该组织还具备极强的跨平台感染能力,能够利用窃取到的凭证,借助名为“CanisterWorm”的自传播蠕虫病毒,将攻击范围横向扩展至 npm 和 PyPI 等多个软件生态系统。在数据窃取阶段,他们使用了 AES-256 和 RSA-4096 高强度加密技术来向外传输敏感数据。
然而,此次事件的归属研判存在一定争议。2026年4月22日,TeamPCP 组织通过社交平台公开否认参与此次 Xinference 投毒事件,声称系他人冒用 TeamPCP 名义实施。
图8 TeamPCP否认此次攻击
结合历史样本进行横向对比,我们注意到在此前已确认由 TeamPCP 发起的 LiteLLM 和 Telnyx 供应链投毒事件中,恶意代码顶部并未出现类似的文字标记。这一差异点值得关注。
图9 LiteLLM 和 Telnyx事件中恶意代码示例
综合以上分析,目前尚无法仅凭代码中的文本标记将此次 Xinference 事件确定性归属于 TeamPCP 组织。该标记既可能是攻击者的真实署名,也可能是第三方蓄意嫁祸的假旗手段。我们将持续关注此事件的后续发展,并在获得更多关联证据后更新归属研判结论。
03
防范排查建议
如果您受到影响,请您:
- 立刻隔离受影响资产:对安装过受影响版本(2.6.0/2.6.1/2.6.2)的主机、容器、CI 节点执行网络隔离,优先阻断到可疑域名与外连通道。
- 紧急下线受污染版本:卸载受影响包并清理缓存镜像,禁止继续使用受影响版本。
- 强制轮换所有高价值凭证:包括云账号 AK/SK、K8s Token、仓库访问令牌、数据库口令、Webhook、VPN 与证书私钥。
- 检查 __init__.py 是否存在异常 Base64 长字符串、可疑执行链(如 exec()、subprocess.Popen()、subprocess.run())。
- 搜索攻击者标记与阶段特征:# hacked by teampcp、X-QT-SR、whereisitat.lucyatemysuperbox[.]space。
- 查找可疑中间文件或压缩产物(例如 love.tar.gz、临时文件 f)。
附录 IOC
| | | | — | — | | IOC | 说明 | | whereisitat.lucyatemysuperbox[.]space | C2 | | 971670c10eff28339a085ca50a600e35 | xinference-2.6.0.tar.gz | | 9b3257e45b27a6bbe4e240e41a3a306f | xinference-2.6.1.tar.gz | | 484067fd6232f7cdd7b664b33857fc2c | xinference-2.6.2.tar.gz | | 8673c50ccff8e2acc8d3c31463c36490 | xinference-2.6.0/xinference/__init__.py | | 67de6bf436257442e95efa9fab159e10 | xinference-2.6.1/xinference/__init__.py | | fe407adc7d14ab0ba6f415914fbf7959 | xinference-2.6.2/xinference/__init__.py | | 630082e1b20c362963b9dda3bfffb2dc | stage1.py | | 0ab3ab613fd3a85a06ea769b0f4ffa5c | stage2.py |
360高级威胁研究院
360高级威胁研究院是360数字安全集团的核心能力支持部门,由360资深安全专家组成,专注于高级威胁的发现、防御、处置和研究,曾在全球范围内率先捕获双杀、双星、噩梦公式等多起业界知名的0day在野攻击,独家披露多个国家级APT组织的高级行动,赢得业内外的广泛认可,为360保障国家网络安全提供有力支撑。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:360威胁情报中心 高级威胁研究院 高级威胁研究院《Xinference 供应链安全事件调查与分析报告》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。












评论