TL;DR:
维护了8年的开源项目Neutralinojs惨遭“自己人”背刺,罪魁祸首竟然是一款爆火的AI插件OpenClaw。这只“龙虾”不仅夹碎了开发者的安全防线,还引来了北韩和俄罗斯的顶级APT组织疯狂“白嫖”。2026年了,防火防盗防协作,还得防AI插件在线“降智”。
在开源界,最让人破防的不是代码有Bug,而是你辛辛苦苦奶了8年的“亲儿子”,突然被告知变成了黑客的毒窝。
最近,跨平台框架Neutralinojs的作者Shalitha Suranga就体验了一把什么叫“赛博心梗”。这位老哥某天醒来,发现LinkedIn上躺着一条安全团队的消息:“兄弟,你那四个核心仓库都被投毒了,恶意代码藏得比你前任的心还深。” 1
案发现场:一次关于“信任”的赛博背刺
Neutralinojs是什么地位?它是Electron的轻量级“平替”,被成千上万个应用调用,还是Google Summer of Code(GSoC)的常客。这种项目要是炸了,那可不是修个Bug的事,而是整个生态都要跟着“陪葬”。
经过一番侦探式的排查,真相让作者哭笑不得:出问题的不是他的Token泄露,也不是账号被黑,而是一位拥有写权限的“项目老伙计”掉坑里了。这位兄弟最近迷上了最近火出圈的AI Agent项目——OpenClaw(江湖人称“龙虾”),并顺手装了个名为“OpenClaw”的插件。1 2
“我只是想让AI帮我写代码,谁知道它想帮黑客搬空我的家。”——这大概是那位受害成员最想说的话。
黑客通过这个插件拿到了该成员的GitHub权限,反手就给Neutralinojs的仓库来了一套“强制推送+历史篡改”组合拳。恶意JS代码经过重度混淆,还利用大量空格在GitHub查看器里玩起了“灯下黑”。如果不是安全团队OpenSourceMalware(OSM)及时报警,这8年的心血差点就成了黑客手中的肉鸡孵化器。1
技术大揭秘:这只“龙虾”到底有多毒?
能让开源大佬集体翻车的OpenClaw,到底是何方神圣?
在2026年初,OpenClaw凭借“史上增长最快开源项目”的光环出道,GitHub Star数一路狂飙到接近30万。2 但在安全圈眼中,这项目简直就是**“Vibe Coding”**(氛围感编程)的灾难现场:只要效率不要命,安全防护全靠天。
- ClawHub成了“毒窝”:OpenClaw的插件市场ClawHub简直是黑客的自助餐厅。研究人员审计发现,每8个插件里就有1个是带毒的。2 它们伪装成“LinkedIn智能求职助手”、“YouTube下载器”或者“加密货币追踪器”,诱导你点击安装。
- CVE-2026-25253(ClawJacked):这是一个能让安全官当场辞职的高危漏洞。攻击者只要发给你一个恶意链接,只要你点了,他们就能通过WebSocket劫持你的本地网关,直接接管你的系统。3
- APT组织全员到齐:根据“OpenClaw曝光监控板”的数据,全球有超过27万个实例裸奔在公网上。2 其中约40%已经被北韩的APT37、俄罗斯的Sandworm等“国家队”选手盯上。你以为你在用AI提效,其实北韩黑客在用你的服务器挖矿。
未来预测:供应链攻击进入“降维打击”时代
这次事件释放了一个极其危险的信号:供应链攻击已经从“攻击代码”演变为“攻击信任关系”。
以前黑客要挖空心思找代码漏洞,现在他们只需要写一个好用的AI插件,然后在社交媒体上雇水军吹一波,等那些拥有高权限的开发者自动上钩。这种“降维打击”让传统的沙箱机制和代码审计变得像马其诺防线一样尴尬——因为是你亲手给AI开了门。
对于广大开发者来说,2026年的生存法则得改改了:
- 权限收缩:前成员离开项目一秒钟都不要留恋,立刻回收写权限。
- 分支保护:永远、永远不要允许直接向默认分支推送代码,哪怕是你亲爹也不行。
- AI克制:别在没看源码的情况下,就给那些来路不明的AI Agent开放全量终端权限。
正如Neutralinojs作者所说,现在的恶意软件已经进化到:你只需要执行一次 git clone,甚至只是把某人加进仓库,你的职业生涯就可能提前杀青。1
至于那只搞事情的“龙虾”?建议大家在更新到最新安全版本之前,还是先把它关进名为“隔离区”的冷库里吧。
引用
-
8年心血差点“一夜清零”,只因“自己人”装了个「龙虾」,4个核心仓库被投毒 · 36氪 · CSDN (2026/03/12) · 检索日期2025/05/22 ↩︎ ↩︎ ↩︎ ↩︎
-
当AI助手变成“特洛伊木马”:OpenClaw安全危机警示录 · 安全内参 · ADLab (2026/03/11) · 检索日期2025/05/22 ↩︎ ↩︎ ↩︎ ↩︎
-
爆火背后:OpenClaw 开源AI智能体应用攻击面与安全风险系统剖析 · 绿盟科技 · 天元实验室 (2026/03/05) · 检索日期2025/05/22 ↩︎