世界上最大的代码托管平台,被一个代码编辑器插件攻破了。GitHub确认:大约3800个内部仓库被克隆。攻击者明码标价5万美元,卖不出去就直接公开。CISA在事件曝光一周后把两个漏洞加入了强制修复目录,要求联邦机构6月10日前必须处理。一个220万次安装、标着"已验证发布者"徽章的VS Code插件,怎么就变成了攻破GitHub的武器?一、18分钟
Nx Console是VS Code marketplace上的明星插件。做前端开发的几乎都知道Nx——一个管理monorepo(大型项目代码仓库)的工具,Uber、Bun、Ghostty都在用。Nx Console是它的官方VS Code配套插件,220万次安装,发布者挂着蓝色"Verified"徽章。2026年5月18日,UTC时间12:36,Nx Console的v18.95.0版本推送到VS Code marketplace。11分钟。VS Code marketplace上的存活时间是11分钟,Open VSX上稍长,36分钟。但VS Code的插件默认自动更新。笑了,自动更新本来是为了安全。也就是说,这11分钟里,全球所有开着VS Code、装了Nx Console的开发者——插件已经在后台悄悄升级了。二、2777字节
安全研究员Nir Zadok(OX Security)逆向分析了这个恶意版本。整个后门只有2777字节的JavaScript,注入在minified(压缩后的)main.js文件中,藏在大约第770万字节的位置。在插件的activate()入口——也就是每次你打开VS Code工作区时自动执行的函数——里,悄悄创建了一个VS Code Task。Task的名字叫install-mcp-extension。看起来像是在安装MCP(模型上下文协议)扩展,完全不像可疑操作。一条shell命令。-y自动确认,不用你点任何东西。558b09d7是一个commit hash。而这个commit,是攻击者提前埋好的一个"孤儿提交"(orphan commit)。什么是孤儿提交?一个没有父节点的commit,不属于任何分支。在GitHub的网页界面上根本看不到它。攻击者甚至在commit message里写了一句:"Don't delete this commit before 24 hours or wiper activates"(24小时内别删,否则自毁程序激活)——一个假的恐吓,让看到的人不敢轻易操作。这个commit的作者信息伪装成了一位已离职的Nx贡献者zack@nrwl.io。但跟那位开发者的其他commit不同,这个没有GPG签名。498KB的混淆JavaScript,加上一个package.json声明依赖bun@^1.3.14——装完就自动执行,你的机器已经不属于你了。三、cat.py
安全公司Sophos从被感染的开发者机器上找到了一个Python后门文件。路径:/Users/%/.local/share/kitty/cat.py。藏在一个仿冒的终端配置目录里,文件名叫"cat"——看起来像系统命令。它不连任何可疑的服务器。它用GitHub Search API作为指挥控制通道。每小时,cat.py会向api.github.com/search/commits发一个搜索请求,关键词是firedalazer。为什么用GitHub搜索?因为这是正常流量。成千上万的开发者的IDE、CI/CD系统每秒都在访问GitHub API。一条每小时一次的搜索请求,混在里面根本看不出异常。攻击者在公开的GitHub commit message里藏命令。cat.py找到这些commit,用内置的RSA公钥验证签名,然后提取并执行攻击者指定的Python载荷。这就好比,恐怖分子不在电话里说暗号,而是在每天数亿条微博里用特定关键词发帖。只有接收方知道该搜哪个词。四、GitHub中招
但再强的网络防护,挡不住一个员工用自己的笔记本电脑装了一个"官方验证"的插件。离谱。这个员工不是疏忽大意。Nx Console是一个正经工具,220万人装了它。它挂在VS Code marketplace上,打着微软自家的"已验证"标签。插件偷走了员工机器上的GitHub token。攻击者拿着token,克隆了大约3800个GitHub内部私有仓库。GitHub CISO Alexis Wales的声明说:"我们没有证据表明客户自己的仓库受到影响。"但她也承认:"GitHub的一些内部仓库包含客户信息,例如支持交互的摘录。"换句话说:你们存代码的平台,它自己存代码的地方被抄了。笑了。攻击者TeamPCP(也被追踪为UNC6780)在暗网论坛挂牌出售,要价5万美元以上。他们还放话说:"有一个买家就行,卖完我们销毁数据。没人买,我们就免费公开。"TeamPCP在X上的账号xploitrsturtle2公开嘲讽GitHub。五、这不是孤例
TeamPCP不是一个随机黑客组织。他们在2026年的战绩单包括:他们的攻击模式是一种自我复制的蠕虫:攻破一个可信工具 → 窃取开发者凭证 → 用窃来的凭证攻破下一个可信工具 → 循环。说白了,你信得过的人被黑了,你就跟着被黑了。信任链条上任何一环断了,整条链都断。安全圈把这个武器化框架叫做"Mini Shai-Hulud"——源码已经在GitHub上公开了,MIT许可证。任何人都能fork一个变种。GitHub这次中招,实际上是TanStack供应链攻击的下游连锁反应。攻击者先通过TanStack拿到了Nx贡献者的GitHub token,再用这个token投毒Nx Console。这种供应链攻击并不止这一起。就在同一个5月,Red Hat的npm包和Laravel的本地化库也遭遇了类似的投毒——都是通过窃取开发者凭证、在安装过程中植入后门:六、每个开发者都是入口
GitHub不是唯一的大公司受害者。同一条攻击链上,OpenAI和Mistral AI也被攻破了。Nx的联合创始人Jeff Cross在事后写了一段话:"这次事件说明,我们需要从根本上重新思考如何保护开发者工具和开源分发。我们正在和其他高知名度的开源维护者讨论,如何一起解决软件供应链安全中更深层的结构性问题。"VS Code插件有完全的机器访问权限——你的凭据、云密钥、SSH密钥,全都在它的视野里。它是纯文本的JavaScript/Python代码,没有二进制签名可以匹配。它读取.env文件看起来跟正常开发活动一模一样。安全公司Aikido的研究员Charlie Eriksen说了一句大实话:"社区发现恶意版本的速度在加快,这次只用了11分钟。但攻击模型已经把这个考虑进去了——它需要的不是几天,只是几分钟。"七、你该检查什么
如果你装了Nx Console,检查一下版本号。干净的版本是18.94.0及以下,或18.100.0及以上。18.95.0到18.99.0之间的版本可能是恶意的。/Users/你的用户名/.local/share/kitty/cat.py
如果存在,你的机器已经被植入后门了。立刻卸载插件、轮换所有凭证(GitHub token、npm凭据、AWS密钥、SSH密钥、1Password),这个后门偷的不止GitHub。对于所有开发者:VS Code、Cursor、Windsurf——这些编辑器的插件生态都共享同一个问题。自动更新、无审查期、完全权限。你装的每一个插件,都相当于给了它的作者在你电脑上执行任意代码的权限。