VS Code ETHcode 扩展遭供应链攻击:两行恶意代码通过 GitHub PR 植入

ETH

  2025 年 7 月 9 日— ReversingLabs(RL)安全研究人员发现,面向以太坊(Ethereum)开发者广泛使用的 Visual Studio Code 编辑器 ETHcode 扩展遭遇供应链攻击。整个攻击仅通过 GitHub 拉取请求(pull request)悄悄植入两行恶意代码即告完成。

  RL 警告称:"仅需两行代码...即便是合法的软件模块,也可能因可疑开发者账户和对可信代码库的细微修改而遭到入侵。"

  伪装成合法更新的恶意提交

  ETHcode 扩展由名为 7finney 的小型 GitHub 组织维护,自 2022 年发布以来已有近 6000 次安装。6 月 17 日,GitHub 用户 Airez299 提交了标题为"通过 viem 集成和测试框架实现代码现代化"的拉取请求。

  表面上看,这是对半年未更新的代码库的有益贡献。GitHub 的 AI 审查系统和项目维护者都审核了该请求,仅批准了少量修改。

GitHub 拉取请求评论

  ReversingLabs 指出:"乍看之下,Airez299 的拉取请求并未在 ETHcode 模块代码库中添加恶意代码。但在 43 次提交和约 4000 行变更中,有两行代码...彻底破坏了整个项目。"

  精心设计的依赖项劫持

  第一行可疑代码引入了一个名为 keythereum-utils 的新依赖项——该名称刻意模仿了现有依赖项 keythereum。研究人员表示:"这个依赖项经过精心命名,仅添加了-utils 后缀以尽可能降低怀疑。"

  第二行代码则具有欺骗性的简单:通过调用 Node.js 的 require () 函数激活了恶意软件包。触发后,恶意代码会启动隐藏的 PowerShell 进程,从公共文件共享服务下载并运行第二阶段的批处理脚本——其完整功能仍在调查中。

  一次性攻击账户

  RL 分析认为,GitHub 用户 Airez299 很可能是专门用于投毒攻击的一次性账户:"发起 ETHcode 拉取请求的 GitHub 账户 Airez299 创建于攻击当天...没有任何历史活动记录,这强烈表明这是个临时账户。"

  自动更新机制放大风险

  该事件最令人担忧的是,VS Code 默认会自动更新扩展,这意味着任何受感染版本都可能悄无声息地在开发者环境中传播恶意软件。研究人员警告:"凭借近 6000 次安装量,ETHcode 可能已将恶意软件传播至数千个开发系统...具体影响取决于后续载荷的横向移动能力。"

  在 RL 联系微软后,受感染的扩展版本已于 6 月 26 日从 VS Code 应用商店下架。原始开发者随后在 7 月 1 日发布 0.5.1 版本,移除了恶意依赖项。

  参考来源:

VS Code ETHcode Extension Hacked: Just 2 Lines of Code Led to Supply Chain Compromise Via GitHub PR