又又一起AI相关供应链事件:XinferencePyPI(版本2.6.0–2.6.2)供应链污染报告

admin 2026-04-24 05:49:52 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: XinferencePyPI软件包2.6.0-2.6.2版本遭供应链污染,恶意代码在导入时自动执行并窃取云凭据、SSH密钥、加密货币钱包等敏感数据,总下载量约68万次。攻击者使用TeamPCP标记但该组织否认责任。建议受影响用户立即隔离环境、轮换所有凭据并降级至安全版本2.5.0。 综合评分: 85 文章分类: 供应链安全,恶意软件,漏洞预警,威胁情报,AI安全


cover_image

又又一起AI相关供应链事件:Xinference PyPI (版本 2.6.0–2.6.2)供应链污染报告

原创

威胁情报中心 威胁情报中心

奇安信威胁情报中心

2026年4月23日 10:29 北京

在小说阅读器读本章

去阅读

执行摘要

广受欢迎的 Python 软件包 xinference (Xorbits Inference) 在 PyPI 上遭到污染,该包主要用于部署大语言模型 (LLM)、语音识别和多模态 AI 模型。恶意版本 2.6.0、2.6.1 和 2.6.2 被上传,其 __init__.py 文件中包含混淆的恶意软件,在执行 import xinference(或启动 CLI/服务)时会立即触发执行。

恶意负载会执行广泛的侦察并外泄大量敏感数据,包括云凭据(包含针对 AWS 的 IMDSv2 逻辑)、SSH 密钥Kubernetes 配置.env 文件API 令牌加密货币钱包等,并将数据发送至攻击者控制的 C2 服务器 (hxxps://whereisitat.lucyatemysuperbox.space/)。数据被压缩为 love.tar.gz 后通过 curl 命令发送。

该软件包总下载量约为 68 万次,其 GitHub 仓库 (xorbitsai/inference) 拥有 9.3K 颗星。仅上述三个恶意版本受到影响;在用户报告可疑行为(例如发现搜索密码的 grep 活动)后,维护者已将这些版本从 PyPI 撤回。目前 PyPI 上的最新安全版本为 2.5.0(发布于 2026 年 4 月 12 日至 13 日左右)。

恶意软件中包含“# hacked by teampcp”标记,这与威胁组织 TeamPCP 先前的攻击行为一致。然而,TeamPCP 于 2026 年 4 月 22 日在 X 平台上公开否认参与此事,暗示这可能是模仿者或“假旗”行动。这符合 TeamPCP 在 2026 年发起的更广泛供应链活动,其目标是通过凭据窃取负载攻击高价值的 PyPI/npm 软件包。

针对受影响用户的紧急行动:

如果您安装或导入了 xinference==2.6.0, 2.6.1, 或 2.6.2请将该主机/环境视为完全被攻破。请立即隔离该环境,轮换所有可从该环境访问的凭据,并审计后续的可疑活动。

Xinference 背景介绍

  • 官方项目:由 XorbitsAI 开发。GitHub 地址:https://github.com/xorbitsai/inference (9.3K stars)。
  • 用途:面向开源 LLM、嵌入模型、图像/音频模型的生产级推理服务器。提供兼容 OpenAI 的 API;支持在云端、本地或笔记本电脑上进行分布式部署。集成了 LangChain、LlamaIndex、Dify 等工具。
  • PyPI 软件包:xinference —— 作者/维护者:Qin Xuye (xprobe)。许可证:Apache 2.0。
  • 正版发布历史:最新安全版本为 2.5.0(2026 年 4 月)。GitHub 上不存在 2.6.x 的标签或发布版本,表明这些恶意上传绕过了源码仓库。

事件时间线

  • 2025 年 10 月起

    与维护者关联的机器人账号 XprobeBot 出现活动;随后被怀疑是未经授权上传 PyPI 包的切入点。

  • 2026 年 4 月初

    发布正版 2.5.0 版本。

  • 2026 年 4 月 22 日左右(具体上传时间未公开)

    恶意版本 2.6.0–2.6.2 通过被盗的 PyPI 凭据上传至 PyPI(GitHub 端无变动)。XprobeBot 在 UTC 时间约 04:08 提交了一次操作,将 base64 混淆的恶意负载添加到了 __init__.py 中。

  • 2026 年 4 月 22 日(上午)

    用户报告可疑行为(例如 GitHub issue #4828 提到发现 grep 扫描密码的操作)。

  • 2026 年 4 月 22 日

    维护者撤回了这三个版本。JFrog 安全研究团队发布了详细分析。TeamPCP 在 X 上发布声明否认,称其为模仿行为。

  • 2026 年 4 月 22 日至 23 日

    OX Security 等机构发布独立确认报告。目前 PyPI 仅显示 ≤2.5.0 的版本可用。

恶意软件技术分析

该攻击是典型的供应链木马,在导入包时触发(无需单独执行)。

感染向量

  • 恶意代码被注入到 xinference/__init__.py 中。
  • 在 import xinference 时,会存在一个经过高度混淆的 base64 编码负载(第一阶段)。
  • 第一阶段会解码并派生一个分离的子 Python 解释器进程(通过带有 stdin 的 subprocess.Popen),运行第二阶段负载。这种方式可以将恶意软件从父进程中隐匿。
  • 大量使用异常处理、抑制 stdout/stderr 以及清理临时文件以实现隐蔽性。

负载行为(第二阶段收集器)

1.主机画像:运行 hostname; pwd; whoami; uname -a; ip addr; ip route 等命令。

2.机密信息收割(广泛的递归搜索,有限的搜索深度):

  • SSH 密钥(~/.ssh/id_rsa/etc/ssh/ssh_host_*_key)。
  • 云凭据:~/.aws/credentials~/.aws/config, GCP 配置, Kubernetes (~/.kube/config, service-account tokens)。
  • AWS 特有行为:获取 IMDSv2 令牌以及 IAM 角色凭据;尝试调用 Secrets Manager (ListSecrets) 和 SSM (DescribeParameters)。(注:由于存在小 bug,限制了完整机密值的提取)。
  • 包管理器令牌:~/.npmrc~/.pypirc, Cargo 凭据。
  • .env 文件、.git-credentials.gitconfig、Docker config.json
  • 数据库配置(.pgpass, Redis, MongoDB, LDAP, Postfix)。
  • 加密货币钱包(比特币、以太坊等)。
  • Shell 历史记录(.bash_history.zsh_history)、/etc/passwd/etc/shadow、TLS 密钥(.pem.key)。
  • Slack/Discord webhook,JSON/配置文件中的 API 密钥。

3.数据外泄:所有收集的数据写入标准输出 → 压缩为 love.tar.gz → 通过带有自定义头部 X-QT-SR: 14 的 curl --data-binary 发送到 C2。

哈希值(来源于 JFrog):

  • 恶意 __init__.pySHA-256 e1e007ce4eab7774785617179d1c01a9381ae83abfd431aae8dba6f82d3ac127
  • 解码后的第一阶段负载: 077d49fa708f498969d7cdffe701eb64675baaa4968ded9bd97a4936dd56c21c
  • 解码后的第二阶段负载: fe17e2ea4012d07d90ecb7793c1b0593a6138d25a9393192263e751660ec3cd0

与此前 TeamPCP 的一些样本不同,该样本没有持久化机制。其重点是快速、一次性地窃取数据。

归因与更广泛背景

  • TeamPCP 特征:包含明确的“# hacked by teampcp”标记,使用了类似的 base64 + subprocess 技术,以及在 2026 年早期攻击中见过的 C2 外泄模式(如 litellm 1.82.7/1.82.8 和 telnyx 4.87.1/4.87.2)。
  • 否认声明:TeamPCP 的 X 账号 (@pcpcats) 明确否认负有责任,称其为模仿者并表示愿意调查。JFrog 已更新其博客以记录此声明。
  • 可能路径:极有可能是 PyPI 账号被盗 (XprobeBot),而非 GitHub 被攻破。这与 TeamPCP 使用窃取的 CI/CD 或维护者凭据的历史一致。
  • 活动背景:这是 2026 年针对开发工具、AI 代理和基础设施 SDK 的供应链攻击浪潮的一部分。之前的事件也涉及类似的凭据窃取,目标是高权限环境。

影响

  • 规模:虽然三个恶意版本在线时间较短,但该包总体下载量巨大。在受影响窗口期内自动更新或全新安装的任何 CI/CD 流水线、AI 推理服务器或开发机都处于风险之中。
  • 目标画像:运行自托管推理的 AI/ML 团队(这些环境通常持有高价值云凭据、K8s 令牌和模型服务环境)。
  • 潜在损害:完全的凭据泄露可能导致横向移动、数据外泄、加密货币被盗或勒索软件攻击。AWS 特有的逻辑显示了针对性的后期利用意图。

维护者与社区响应

  • 维护者 (Qin Xuye / XorbitsAI):在 GitHub 收到 issue 报告后迅速撤回了相关版本。目前 GitHub 仓库尚未发布置顶的公开声明,但暗示已进行内部调查。
  • JFrog 安全研究:当日发布了全面的技术分析,并将其加入 Xray (XRAY-96896)。
  • OX Security:独立确认了此事,强调了机器人账号被盗的问题,并提供了修复建议。
  • PyPI:已移除相关版本;并提供了恶意软件举报链接。

修复与建议

如果您可能受到影响(根据 JFrog/OX 的建议):

  1. 立即隔离受影响的主机。
  2. 轮换所有凭据:SSH 密钥、所有云平台 IAM 凭据 (AWS/GCP/Azure)、K8s 令牌、Docker/PyPI/npm 令牌、数据库密码、.env机密、钱包、TLS 密钥等。
  3. 审计:CloudTrail、K8s 日志、Shell 历史、认证日志、Git 活动。封禁 C2 域名。
  4. 降级:运行 pip install "xinference<=2.5.0",并在 requirements.txt 或 pyproject.toml 中锁定版本。
  5. 长期防护:
  • 在 PyPI、GitHub 和所有维护者账号上启用双重认证 (2FA/MFA)。

  • 使用依赖锁定和 SBOM 工具(如 JFrog Xray,具有漏洞扫描功能的 Dependabot)。

  • 使用能检测这些 IOC(失陷指标)的工具扫描环境。

  • 在 CI/CD 中优先使用锁定的、经过验证的包源或镜像。

针对 PyPI 普通用户的建议:此次事件(以及之前的“Revival Hijack”技术)凸显了已删除/重新注册软件包及维护者账号被盗的风险。

这是一个快速演变的事件。请关注官方 GitHub 仓库 (xorbitsai/inference) 和 PyPI 以获取维护者的进一步更新。组织机构应将此视为 AI 工具供应链安全的警钟。

资料来源

  • https://research.jfrog.com/post/xinference-compromise/

  • https://www.ox.security/blog/xinference-allegedly-hacked-by-teampcp-malicious-package-in-pypi/

    点击阅读原文至ALPHA 9.1

    即刻助力威胁研判


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:奇安信威胁情报中心 《又又一起AI相关供应链事件:Xinference PyPI (版本 2.6.0–2.6.2)供应链污染报告》

评论:0   参与:  0