Solana 的 web3.js 库中检测到供应链攻击

在流行的 @solana/web3.js 库的 1.95.6 和 1.95.7 版本中检测到了供应链攻击。

供应链攻击检测到在流行的 @solana/web3.js 库的 1.95.6 和 1.95.7 版本中
该库每周在 npm 上下载量超过 35 万次。这些被篡改的版本包含恶意代码,旨在从毫无防备的开发者和用户那里窃取私钥,可能使攻击者能够盗取加密货币钱包中的资产。

我们目前所了解的情况:

  • 受影响的版本:npm 上的 @solana/web3.js 库的 1.95.6 和 1.95.7 版本。
  • 恶意行为:被注入的代码会捕获私钥并将其传输到一个硬编码的地址。
  • 关联钱包:该活动被追踪到 Solana 地址 FnvLGtucz4E1ppJHRTev6Qv4X7g8Pw6WPStHCcbAKbfx
  • 原因:据信是由于针对 Solana 官方维护的 Web3.js 开源库维护者的社会工程/网络钓鱼攻击导致的。

潜在影响:

  • 开发者:将这些版本集成到项目中的开发者面临暴露私钥的风险。
  • 用户:依赖受影响库的应用程序用户可能会因私钥被盗而导致钱包资产被转移。

开发者的紧急行动:

  1. 检查依赖项:审核项目中是否使用了 @solana/web3.js 的受影响版本(1.95.6 或 1.95.7)。
  2. 回滚或更新:降级到 1.95.6 之前的安全版本,或升级到移除了恶意代码的 1.95.8 版本。
  3. 验证代码:手动检查 node_modules 目录和依赖树是否存在可疑修改。
  4. 撤销访问权限:重新生成被泄露的密钥,并根据需要撤销相关权限。


如何检查您的应用程序是否受到影响:

您可以使用 Socket 的免费工具来检查代码是否受到影响:

  1. 本地扫描:安装 Socket 并使用 CLI 运行扫描(通过 socket scan create .)。这是检查本地代码库是否受影响的简单方法。
  2. GitHub 扫描:安装免费的 Socket for GitHub 应用程序,该工具可以帮助您检测组织内的任何代码库是否使用了受影响的版本(不过,扫描需要在默认分支提交新更改后才能生效)。


最新消息:

npm 已迅速删除了受影响的版本。

在 Bluesky 平台上,Datadog 云安全研究员 Christophe Tafani-Dereeper 指出,1.95.7 版本中的后门包含一个名为 "addToQueue" 的函数,该函数设计用来通过看似合法的 CloudFlare 标头窃取私钥。

“该函数被策略性地注入到多个合法的代码路径中,这些路径会访问私钥,”Tafani-Dereeper 解释道。

他还提到,相关的域名(sol-rpc[.]xyz)于 11 月 22 日通过 NameSilo 注册,目前托管在 CloudFlare 后端,但命令与控制服务器(C2)目前已关闭。

翻译自:https://socket.dev/blog/supply-chain-attack-solana-web3-js-library