axios@1.14.1 遭遇供应链投毒:针对开发者及 MCP 用户的高隐蔽性 0-day 攻击 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
0X00FFFF

[email protected] 遭遇供应链投毒:针对开发者及 MCP 用户的高隐蔽性 0-day 攻击

  •  5
     
  •   0X00FFFF 3 月 31 日 9029 次点击

    这是 2026 年 3 月 31 日(不到 24 小时前) 爆发的全新 0day 供应链攻击,目前 npm 官方和主流安全社区尚未公开披露。

    攻击核心

    通过 npx 安装 latest 版本时,[email protected].1 被恶意投毒,偷偷引入了伪装成 crypto-js 的恶意包 [email protected]

    不仅普通开发者受影响,大量使用 AI Coding CLI( Cursor 、Claude Code 、Windsurf 、Codex 等)调用 open-websearchexa-mcp-server 等 MCP 工具的用户也极易中招,因为它们的 npx 缓存同样被污染。

    攻击手法(三平台全覆盖)

    C2 服务器http://sfrclak.com:8000/6202033

    • Windows

      • 复制 powershell.exeC:\ProgramData\wt.exe(伪装成 Windows Terminal )
      • 生成 VBS 脚本下载 payload ,隐藏执行 PowerShell (-w hidden -ep bypass
      • 执行后自删除所有痕迹
    • macOS

      • 下载后门二进制到 /Library/Caches/com.apple.act.mond(伪装系统进程)
      • 赋予权限后后台运行 + 连回 C2
      • 通过 osascript 执行并擦除痕迹
    • Linux

      • 下载 Python 后门到 /tmp/ld.py
      • nohup 后台常驻

    最阴险的是毁尸灭迹

    • 删除自身的 setup.js
    • package.md 重命名为 package.json,彻底覆盖原始 postinstall 字段
    • 事后查看 package.jsonnpm list 几乎看不出任何异常

    快速自查命令(强烈建议立刻执行)

    # 检查可疑 axios 版本 npm list axios 2>/dev/null | grep -E "1\.14\.1|0\.30\.4" # 检查 lock 文件 grep -A1 '"axios"' package-lock.json | grep -E "1\.14\.1|0\.30\.4" # 检查恶意依赖 ls node_modules/plain-crypto-js 2>/dev/null && echo " 可能已中招!" # 检查 RAT 残留痕迹 # macOS ls -la /Library/Caches/com.apple.act.mond 2>/dev/null && echo " COMPROMISED" # Linux ls -la /tmp/ld.py 2>/dev/null && echo " COMPROMISED" # Windows (cmd) dir "%PROGRAMDATA%\wt.exe" 2>nul && echo COMPROMISED
    66 条回复    2026-04-01 15:17:23 +08:00
    aikilan
        1
    aikilan  
       3 月 31 日
    上次 npm 改了发布机制,这次再来一波,npm 打算改啥
    crime1024
        2
    crime1024  
       3 月 31 日
    网络不安全,我要回家
    eviladan0s
        3
    eviladan0s  
       3 月 31 日 via iPhone   1
    和 0day 没有关系,是维护者的 npm 账户被入侵了
    wu67
        4
    wu67  
       3 月 31 日
    幸亏最近没有升级这工具库, 我本身也锁死了版本号
    shirakawatyu
        5
    shirakawatyu  
       3 月 31 日   1
    node_modules 散落在硬盘各处,想查都困难
    zeex
        6
    zeex  
       3 月 31 日
    这个有点无解 这一波一下都得中招
    lisxour
        7
    lisxour  
       3 月 31 日
    npm 就没有签名机制吗
    lujiaosama
        8
    lujiaosama  
       3 月 31 日
    AXIOS 基本上是前端请求库的基石了, 这影响面也太巨大了吧.
    irrigate2554
        9
    irrigate2554  
       3 月 31 日
    everything 打开,搜索 plain-crypto-js 看看有没有吧
    shirakawatyu
        10
    shirakawatyu  
       3 月 31 日
    @shirakawatyu 看起来是刚发不久就被发现了,npm 上已经没这版本了
    7gugu
        11
    7gugu  
       3 月 31 日
    被波及到了,只能赶紧锁版本了,以后这种基础库还是不能用最新的
    wzhcanon
        12
    wzhcanon  
       3 月 31 日
    这太扯了
    thrinity
        13
    thrinity  
       3 月 31 日
    open-websearch 这种还挺频繁用到
    laikicka
        14
    laikicka  
       3 月 31 日
    远离 axios 保平安
    crysislinux
        15
    crysislinux  
       3 月 31 日 via Android
    nodejs 这种小包生态供应链投毒无解了。
    Ketteiron
        16
    Ketteiron  
       3 月 31 日   3
    https://github.com/axios/axios/issues/10604
    开发者凭证被偷感觉是无解的难题。
    realJamespond
        17
    realJamespond  
       3 月 31 日
    pnpm 有影响不?
    apkapb
        18
    apkapb  
       3 月 31 日
    只有 1.14.1 中招吗
    Felldeadbird
        19
    Felldeadbird  
       3 月 31 日
    吓得我菊花一紧,"axios": "^1.13.6"。 我没中招吧。
    stinkytofux
        20
    stinkytofux  
       3 月 31 日
    网络太危险了, 我要拔网线
    liangdi
        21
    liangdi  
       3 月 31 日
    供应链安全 确实头疼
    FakerLeung
        22
    FakerLeung  
       3 月 31 日
    还好我司强制性要求版本固定,还在 1.13.5
    v21984
        23
    v21984  
       3 月 31 日
    以及 0.30.4
    Bronya
        24
    Bronya  
       3 月 31 日
    吓人,这种基础库,涉及范围太广了
    今天是 axios ,明天又会是哪个
    liuxue
        25
    liuxue  
       3 月 31 日 via iPhone
    @realJamespond 这个用的一般也是 npm 的仓库吧
    loading
        26
    loading  
       3 月 31 日
    latest 这种不确定性,真的可怕噢。
    stinkytofux
        27
    stinkytofux  
       3 月 31 日
    @Bronya 已经开始人传人迹象了.
    Javin
        28
    Javin  
       3 月 31 日
    现在这种漏洞越来越多,和 AI 是不是有关系呢
    MIUIOS
        29
    MIUIOS  
       3 月 31 日
    我操 我中招了
    Ketteiron
        30
    Ketteiron  
       3 月 31 日   1
    @realJamespond #17 pnpm10+ 默认在安装期间阻止依赖项的生命周期脚本执行,因此主动安装的 axios 不会中招,但是 CLI/MCP 很可能使用 npx ,这样依然会中招。
    chen7897499
        31
    chen7897499  
       3 月 31 日
    ld.py payload https://pastebin.com/MtsK5QHx
    其他的弄不下来了
    xling
        32
    xling  
       3 月 31 日
    npm 这奇葩自动升级策略迟早要酿成大祸
    diudiuu
        33
    diudiuu  
       3 月 31 日
    无解,就固定版本吧,非必要不升级
    renmu data-uid=
        34
    renmu  
       3 月 31 日 via Android
    我今天上午刚升级的 axios 依赖,中招了,火绒有拦截提醒,但被我允许了,还骂了一句火绒 sb,我错怪你了啊
    june4
        35
    june4  
       3 月 31 日
    nodejs 安全性确实不行,应该也搞成 deno 这样的
    lisongeee
        36
    lisongeee  
       3 月 31 日
    如果是上次的 apifox 事件导致的 npm token 泄露,是不是会频繁导致此类问题
    0X00FFFF
        37
    0X00FFFF  
    OP
       3 月 31 日
    a33291
        38
    a33291  
       3 月 31 日
    @lisongeee 是,至少会持续一段时间,比如 https://github.com/hicccc77/WeFlow/issues/555
    C64NRD
        39
    C64NRD  
       3 月 31 日
    npm 官网好像刚刚撤掉顶部 banner ( 2F ) 没多久
    kasusa
        40
    kasusa  
       3 月 31 日
    好新啊。
    poly1911
        41
    poly1911  
       3 月 31 日
    自查完毕,没有中招

    I'm tired boss
    test9106
        42
    test9106  
       3 月 31 日
    中招了怎么清理机器啊
    tiaod
        43
    tiaod  
       3 月 31 日
    我就说为啥现在 npm 发个包那么复杂
    m9rco
        44
    m9rco  
       3 月 31 日
    @chen7897499 #31 这是什么东西大佬,观摩下
    meteora0tkvo
        45
    meteora0tkvo  
       3 月 31 日
    说实话,直接用浏览器原生 fetch 也挺方便的,搞不懂为啥还要特地装个 axios
    wkend
        46
    wkend  
       3 月 31 日
    老妈,互联网太危险了,我想回家
    FireKey
        47
    FireKey  
       3 月 31 日
    感觉是有基础设施中招了或者这类攻击模式开始传播,现在能不升级先不升级了
    renyixu
        48
    renyixu  
       3 月 31 日   1
    明天华为是不是就自研了
    test9106
        50
    test9106  
       3 月 31 日
    @realkaiway 多谢!
    Livid
        51
    Livid  
    MOD
    PRO
       3 月 31 日   2
    $ cat ~/.npmrc
    min-release-age=7
    AiBoy
        52
    AiBoy  
       3 月 31 日
    又来又来!
    Sezxy
        53
    Sezxy  
       3 月 31 日 via Android
    @renyixu ???!?
    cairnechen
        54
    cairnechen  
       3 月 31 日
    1.13.4 运气不错
    Lemonadeccc
        55
    Lemonadeccc  
       3 月 31 日
    1.14.0 差一步我去
    oIMOo
        56
    oIMOo  
       3 月 31 日
    分享一篇文章:[Axios npm Supply Chain Compromise Full Analysis Package]( https://gist.github.com/N3mes1s/0c0fc7a0c23cdb5e1c8f66b208053ed6)

    另外求大家帮帮孩子:[求推荐代码审计软件/平台/插件]( https://v2ex.com/t/1202258#reply0)
    mrabit
        57
    mrabit  
       3 月 31 日
    @renyixu 你回复错了吧? 你是想说 Claude Code 源码?
    dcsuibian
        58
    dcsuibian  
       25 天前   2
    Java+Python+Javascript/TypeScript 使用者表示
    在工程规范上,Java 真的吊打后面两者
    hafuhafu
        59
    hafuhafu  
       24 天前
    突然感觉近期供应链投毒等因为凭据泄露的事高发,和 AI 被滥用有一定关系...
    apkapb
        60
    apkapb  
       24 天前
    我前几天,刚把依赖升级成最新版本,"axios": "1.13.6",

    就差几天,就中招了
    Pipidamowang
        61
    Pipidamowang  
       24 天前
    @apkapb #18 0.30.4 也中招了
    apkapb
        62
    apkapb  
       24 天前
    @Pipidamowang 检查了,没有。。这种基建被攻击了可太难受了
    kloge
        63
    kloge  
       24 天前
    最近这么多供应链投毒, 会不会跟龙虾有关?
    xue777hua
        64
    xue777hua  
       24 天前
    @dcsuibian 没觉得多吊打,java 只是因为只负责后端而已,暴露面一下子就小很多了, 该不会忘了 log4j 的事情了?
    dcsuibian
        65
    dcsuibian  
       24 天前
    @xue777hua 说明你完全不懂后端

    1 、那个漏洞是 log4j2 ,而不是 log4j ,两者根本不是一个东西。log4j 作者的原作者的后续产品是 logback ,也有 slf4j 的日志门面。他不是第一个发明日志的人,但是却是打日志工程化的祖师爷,log4j2 根本不是他的项目。而且 Spring Boot 的默认也是 logback ,所以只有你手动替换了日志实现才会有这个问题

    2 、如果你要说 log4j2 的话,那么请问 Next.js 的 CVE-2025-29927 和 CVE-2025-55182/CVE-2025-66478 ,如果 Next.js 只做前端框架不会有这种问题,说白了,前端被浏览器和后端安全策略保护的太好了。因为规范的后端本来就不信任前端发来的数据,所以前端之前才出的少。当前端开始做后端,就有这种问题

    3 、既然这个主题是关于包管理器的,正好我也发过包,你可以先去跟 AI 了解下这三者的差距,Java 的 Maven 规范远远大于前两者。首先 Java 的 Maven Central 是由 Sonatype 托管的,你要发布一个包会有域名命名空间所有权验证、强制 GPG 签名,强制提供 Javasoc 和 Sources 等。这些 npm 和 pypi 有吗?
    pypi 和 npm 完全全局共享一个命名空间,抢注包名没有吗?

    4 、另外 Maven 不光是包管理器,更接近来说,应该是构建管理器,包管理器只是一部分,如果放到前端,可能更接近于 npm 和 vite 的合体。

    5 、另外 node_modules 的设计简直是屎中屎,全宇宙最重的东西。语义化版本控制听起来很好,实际就会引入这种供应链投毒,因为版本不锁定,要不然为啥又 package-lock.json 。而 Maven 这边的项目你可以去看看,基本都是完全锁死 gav 坐标的,不存在偷换的问题

    6 、如果不说 Node.js ,就再说下 Python ,Python 的管理就复杂,从 requirements.txt 、Anaconda ,好不容易有了 pyproject.toml ,但是仍然不够好,比如对 src/ Layout 的支持,要么变成没有 src/的非包项目,要用 src/ 就必须搞成包,非常混乱
    xue777hua
        66
    xue777hua  
       24 天前
    @dcsuibian
    对对对
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1380 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 138ms UTC 17:07 PVG 01:07 LAX 10:07 JFK 13:07
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86