0X00FFFF

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

  •  5
     
  •   0X00FFFF · Mar 31 · 11611 views
    This topic created in 220 days ago, the information mentioned may be changed or developed.

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

    攻击核心

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

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

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

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

    • Windows:

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

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

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

    就差几天,就中招了
    Pipidamowang
    61
    @apkapb #18 0.30.4 也中招了
    apkapb
    apkapb
    Apr 1
    62
    @Pipidamowang 检查了,没有。。这种基建被攻击了可太难受了
    kloge
    kloge
    Apr 1
    63
    最近这么多供应链投毒, 会不会跟龙虾有关?
    xue777hua
    64
    @dcsuibian 没觉得多吊打,java 只是因为只负责后端而已,暴露面一下子就小很多了, 该不会忘了 log4j 的事情了?
    dcsuibian
    65
    @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
    @dcsuibian
    对对对
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4666 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 162ms · UTC 05:47 · PVG 13:47 · LAX 21:47 · JFK 00:47
    ♥ Do have faith in what you're doing.