AI投毒情报预警|Xinference国产推理框架遭受供应链窃密后门投毒

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

文章总结: 悬镜安全情报中心监测到国产AI推理框架Xinference在PyPI发布的2.6.0-2.6.2版本遭供应链投毒,攻击者通过泄露维护者凭证植入多阶段恶意代码,可窃取SSH密钥、云凭证、加密货币钱包等敏感数据并外传至C2服务器。报告提供了恶意代码分析、IoC指标及排查脚本,建议用户立即回滚至2.5.0安全版本并更换泄露凭证。 综合评分: 85 文章分类: 供应链安全,恶意软件,漏洞预警,安全工具,AI安全


cover_image

AI投毒情报预警 | Xinference国产推理框架遭受供应链窃密后门投毒

原创

悬镜安全情报中心 悬镜安全情报中心

悬镜安全

2026年4月23日 12:03 上海

在小说阅读器读本章

去阅读

AI风险情报概述

Summary

北京时间4月22日16点,悬镜AI安全情报中心在Pypi官方仓库中监测到国产热门开源AI模型推理框架 Xinference 短时间内连续发布2.6.0、2.6.1及2.6.2三个版本更新,并且在这三个新版本框架源码中都检出混淆代码及高风险恶意行为。在混淆恶意代码中发现 “hacked by teampcp” 相关标记,目前猜测项目维护者 Pypi token 泄露导致Pypi发布权限疑似被 TeamPCP 组织接管而引发又一起针对AI数字供应链投毒事件。TeamPCP组织上个月已针对 PyPI 的 litellm、telnyx以及NPM、GitHub 等多个主流开源生态系统实施过类似供应链攻击。

Xinference 框架主页(投毒版本2.6.2、2.6.1及2.6.0)

Xinference(全称 Xorbits Inference) 是一个国产开源、Python开发的通用大模型分布式推理/服务框架,用于一键部署、管理、调用开源AI模型,提供完整 Python SDK、命令行、Web UI、OpenAI 兼容 API。截至目前,Xinference开源推理框架在Pypi官方仓库总下载量超过68+万次。

Xinference 官网

此次针对xinference框架的代码投毒发生在Pypi仓库,xinference github 项目(https://github.com/xinqiyang/xinference)并未受到影响,攻击者主要通过xinference/__init__.py模块文件中植入base64编码的恶意代码。开发者一旦安装加载受影响的xinference库(import  xinference)或启动xinference cli即静默触发恶意代码。第一阶段payload创建临时目录,注入第二阶段内嵌编码的收集器,通过子进程在后台执行并隐藏输出;第二阶段收集器对目标主机进行全面信息侦察,窃取SSH密钥、Git凭证、AWS密钥、Kubernetes配置、Docker认证信息、包管理器令牌、环境变量文件(.env)、数据库配置、VPN凭据、TLS私钥、加密货币钱包等敏感数据,并外传至攻击者控制的C2服务器。

针对此次突发投毒事件,悬镜安全已于第一时间将本次AI供应链投毒相关技术细节向XSBOM情报订阅用户推送预警。

| | | | | — | — | — | | 组件名 | 投毒版本 | 发布时间 | | xinference | 2.6.2; 2.6.1; 2.6.0 | 2026.04.22 |

供应链投毒分析

Poisoning Analysis

1

恶意代码植入

以 xinference 2.6.0版本为例,攻击者在模块入口文件xinference/__init__.py尾部植入多阶段编码的恶意代码,如下图所示:

投毒文件代码比对

恶意代码经过一轮base64解码后直接传入 subprocess.Popen 执行,如下图所示:

第一阶段恶意代码

第一阶段恶意代码解码后的如下所示,同样内嵌了base64编码的第二阶段恶意代码。

第二阶段恶意代码

第二阶段恶意代码具体功能拆解如下:

  • 创建临时目录与文件(tempfile.TemporaryDirectory() → collected 文件)
  • 通过 subprocess.run() 启动 Python 子进程执行第二阶段恶意python代码,标准输出重定向到 collected文件
  • 若采集结果文件存在且非空,将其打包为 love.tar.gz
  • 使用curl 静默POST 请求,将压缩包以二进制形式上传到攻击者服务器

2

敏感信息采集

第二阶段内嵌的恶意代码主要通过walk/emit/run等核心函数,系统性采集以下几类敏感数据:

  • 身份认证凭证:SSH 密钥(id_rsa/authorized_keys)、云服务凭证(AWS/Google Cloud/Azure/K8s)、容器凭证(Docker/kaniko)、数据库密码(.my.cnf/.pgpass)、版本控制凭证(.git-credentials)等;

  • 环境变量配置:各类.env文件、/etc/environment、云服务环境变量(AWS_/KUBE_/GOOGLE_等);

  • 系统与网络信息:主机名、IP、用户信息、/etc/passwd、/etc/shadow(系统账号密码)、命令历史(.bash_history)、日志文件(auth.log/secure);

  • 加密货币相关:比特币 / 以太坊等加密货币钱包配置、密钥文件;

  • 云服务信息采集:通过 AWS IMDS 元数据服务获取临时凭证,调用 AWS SecretsManager/SSM 接口读取更多云内敏感数据。

各类身份凭证数据收集

加密货币数据收集

3

数据外传

最终收集的敏感数据会被打包为tar文件: love.tar.gz ,并调用curl系统命令将压缩包POST 到攻击者服务器:https://whereisitat.lucyatemysuperbox.space,完成数据外传。

采集数据外传

5

IoC 数据

此次针对 Xinference 供应链投毒涉及的恶意IoC数据如下表所示:

排查方式

Investigation Method

  1. 使用pip show xinference 查询是否已经安装存在投毒版本(2.6.2;2.6.1;2.6.0)的组件,如果已安装请立即使用 pip install xinference==2.5.0 -y 回滚到安全版本;
  2. 监控恶意域名 whereisitat.lucyatemysuperbox.space 的出站流量或 DNS 查询,将恶意域名及IP加入网络黑名单;
  3. 审核系统日志中是否出现 169.254.169.254、169.254.170.2 请求(IMDS/容器凭据);
  4. 排查 curl 命令的异常执行记录,尤其是带有 X-QT-SR: 14 请求头;
  5. 根据本报告提供的IoC对项目文件进行哈希匹配,若命中则立即清除相关恶意文件,并更换所有暴露的私钥、API Token、数据库凭据(包括 Git、SSH、Kubernetes等),并对云端 Secrets 轮换;
  6. 使用悬镜开源工具 OpenSCA-cli将受影响的组件包按如下示例保存为db.json文件,并在opensca配置文件中指定db.json文件路径后,直接执行扫描命令(opensca-cli -path ${project_path}),即可快速获知您的项目是否受到投毒包影响。
[     {         "product": "xinference",         "version": "[2.6.2, 2.6.1, 2.6.0]",         "language": "Python",         "id": "XMIRROR-MAL45-E3B30934",         "description": "热门开源AI模型推理框架xinference遭受供应链投毒开展窃密后门攻击",         "release_date": "2026-04-22"     }]
  1. 快速排查脚本
#!/bin/bash# 功能:检查是否安装 xinference 2.6.0 / 2.6.1 / 2.6.2 恶意版本# 用法:./check_xinference_ioc.sh
# 定义需要拦截的版本MALICIOUS_VERSIONS=("2.6.0" "2.6.1" "2.6.2")
# 查询已安装的 xinference 版本(兼容 pip / pip3)INSTALLED=$(pip3 show xinference 2>/dev/null | grep ^Version: | awk '{print $2}')if [ -z "$INSTALLED" ]; then    INSTALLED=$(pip show xinference 2>/dev/null | grep ^Version: | awk '{print $2}')fi
# 未安装则直接退出if [ -z "$INSTALLED" ]; then    echo "xinference 未安装"    exit 0fi
# 匹配恶意版本for v in "${MALICIOUS_VERSIONS[@]}"; do    if [ "$INSTALLED" = "$v" ]; then        echo -e "\033[31mCompromised!\033[0m"        echo "已安装恶意版本 xinference $INSTALLED"        exit 1    fidone
# 安全版本echo "xinference 版本安全:$INSTALLED"
#!/bin/bash# 功能:递归扫描指定目录,计算文件MD5,匹配恶意IOC,命中则告警# 用法:sudo ./check_xinference_md5_ioc.sh 目标扫描目录 (如 /tmp /root /home)
# 定义恶意MD5 IOC列表MALICIOUS_MD5=("971670c10eff28339a085ca50a600e35""8673c50ccff8e2acc8d3c31463c36490""9b3257e45b27a6bbe4e240e41a3a306f""67de6bf436257442e95efa9fab159e10""484067fd6232f7cdd7b664b33857fc2c""fe407adc7d14ab0ba6f415914fbf7959""3ee893ae46530b92e0d26435fb979d82""e291734d46c313a23d676681499f8846""c6ce4e25f7fe3e3bb1eea2e9052483bf")
# 检查是否传入目录参数if&nbsp;[&nbsp;$#&nbsp;-ne 1 ];&nbsp;then&nbsp; &nbsp;&nbsp;echo&nbsp;"用法:$0&nbsp;<需要扫描的目录>"&nbsp; &nbsp;&nbsp;echo&nbsp;"示例:$0&nbsp;/tmp"&nbsp; &nbsp;&nbsp;exit&nbsp;1fi
SCAN_DIR="$1"
# 检查目录是否存在if&nbsp;[ ! -d&nbsp;"$SCAN_DIR"&nbsp;];&nbsp;then&nbsp; &nbsp;&nbsp;echo&nbsp;"错误:目录&nbsp;$SCAN_DIR&nbsp;不存在"&nbsp; &nbsp;&nbsp;exit&nbsp;1fi
echo&nbsp;"============================================="echo&nbsp;" &nbsp;开始扫描目录:$SCAN_DIR"echo&nbsp;" &nbsp;递归扫描所有文件,匹配恶意MD5..."echo&nbsp;"============================================="echo
# 递归遍历文件 + 计算MD5 + 匹配IOCfind&nbsp;"$SCAN_DIR"&nbsp;-type&nbsp;f |&nbsp;while&nbsp;read&nbsp;-r file;&nbsp;do&nbsp; &nbsp;&nbsp;# 计算文件MD5&nbsp; &nbsp; current_md5=$(md5sum&nbsp;"$file"&nbsp;2>/dev/null | awk&nbsp;'{print $1}')
&nbsp; &nbsp;&nbsp;# 跳过无法读取的文件&nbsp; &nbsp;&nbsp;if&nbsp;[ -z&nbsp;"$current_md5"&nbsp;];&nbsp;then&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;continue&nbsp; &nbsp;&nbsp;fi
&nbsp; &nbsp;&nbsp;# 匹配恶意MD5&nbsp; &nbsp;&nbsp;for&nbsp;malicious&nbsp;in&nbsp;"${MALICIOUS_MD5[@]}";&nbsp;do&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;if&nbsp;[&nbsp;"$current_md5"&nbsp;==&nbsp;"$malicious"&nbsp;];&nbsp;then&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;echo&nbsp;-e&nbsp;"\033[31m[!] Compromised! 发现恶意文件:\033[0m"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;echo&nbsp;"文件路径:$file"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;echo&nbsp;"匹配MD5:$current_md5"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;echo&nbsp;"---------------------------------------------"&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;fi&nbsp; &nbsp;&nbsp;donedone
echo&nbsp;-e&nbsp;"\n扫描完成!"

近期悬镜安全正式发布的新一代AI原生安全治理平台“问境AIST”已将 AI 供应链安全情报纳入整体治理框架,当外部出现针对特定 AI 框架、模型组件或数据链路的 0Day 攻击与投毒事件时,AIST平台能够根据 AI-BOM 快速识别受影响范围,定位关联资产与代码链路,并为修复和处置提供更具针对性的依据,帮助企业构建起小时级的风险响应闭环。


部分标杆用户

推荐阅读

关于“悬镜安全”

悬镜安全,起源于北京大学网络安全技术研究团队“XMIRROR”。作为新一代 AI 数字供应链安全开拓者,首创基于“AI 原生安全+多模态AIST+ DevSecOps敏捷安全+多模态 SCA+AI 供应链安全情报预警”技术的新一代 AI 数字供应链安全治理体系,以 AI 治理 AI,从源头治理大模型开发、训练、部署到智能体运营等关键环节面临的 AI 原生安全风险,帮助企业用户构筑一套从传统软件供应链到 AI 原生供应链全生命周期的内生安全治理体系,持续守护新一代 AI 数字供应链安全。


免责声明:

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

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

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

本文转载自:悬镜安全 悬镜安全情报中心 悬镜安全情报中心《AI投毒情报预警 | Xinference国产推理框架遭受供应链窃密后门投毒》

评论:0   参与:  0