Vue、React 无一幸免!严重漏洞速查!

sha.js 是 JavaScript 生态里最常用的轻量级加密库。

它由 Browserify 社区维护,体积不足 20 KB,却实现了 SHA-1、SHA-224、SHA-256、SHA-384、SHA-512 全系列算法,是 crypto-browserify、webpack、web3.js 等数百个流行包的“根依赖”。

而就在前几天,美国 NVD(国家漏洞库)正式发布 CVE-2025-9288,指向 JavaScript 加密库 sha.js。

事件概述

美国 NVD(国家漏洞库)正式发布 CVE-2025-9288

指向 JavaScript 加密库 sha.js。该漏洞被评定为 严重级(CVSS 9.1),影响 每周 1 400 万次下载 的 Node.js 与浏览器端项目,堪称 2025 年波及面最广的前端供应链事件之一。

官方修复版本:sha.js 2.4.12(已推送 npm)受影响版本:≤2.4.11发现与披露:GitHub Advisory + FreeBuf 首发技术长文漏洞原理 30 秒速读

sha.js 在处理输入时 未校验数据类型与长度,攻击者通过构造畸形对象:

复制
{ length: -1 }1.

即可触发:

哈希降级 / 碰撞:相同摘要对应不同数据DoS 无限循环:CPU 被瞬间打满私钥恢复:若哈希结果作为随机数 nonce,可反向推导私钥波及面:35 个库 / 框架 / 工具链

我们综合 NVD、GitHub Advisory、npm 依赖树 以及 主流安全媒体 的交叉验证,整理出 35 条 确认受影响的库与场景.

覆盖 Web3、前端、Node 服务、桌面与移动开发全链路。

★15 个高频直接依赖库

#

典型受感染版本

备注

1

browserify

≤17.0.0

打包器

2

create-hash

≤1.2.0

被大量加密库二次封装

3

create-hmac

≤1.1.7

HMAC 封装

4

crypto-browserify

≤3.12.0

Web 环境 crypto polyfill

5

crypto-js

≤4.1.1

重新打包 sha.js 旧代码

6

elliptic

≤6.5.4

椭圆曲线运算

7

ethers

≤4.0.47 / 5.6.8

以太坊 JS SDK

8

ganache-cli

≤6.12.2

本地区块链

9

hash.js

≤1.1.7

sha.js 的别名发布

10

keccak

≤3.0.2

以太坊 Keccak 封装

11

merkle-patricia-tree

≤4.2.4

以太坊状态树

12

mocha

≤9.2.2

测试框架(开发依赖)

13

parcel-bundler

≤2.8.3

零配置打包器

14

web3

≤1.7.0

以太坊官方 JS SDK

15

webpack

≤4.46.0 / ≤5.74.0

构建工具

20 个间接或场景级受影响库 / 框架 / 工具链

#

包名 / 组件

场景说明

16

@solana/web3.js

Solana 链 JS SDK(历史版本锁定)

17

@truffle/contract

Truffle 测试套件

18

@vue/cli-service

Vue CLI 打包链

19

@angular-devkit/build-angular

Angular CLI

20

@react-native-community/cli

React Native CLI

21

hardhat

以太坊本地开发框架

22

remix-dev

Remix 全栈框架

23

next

Next.js SSR 框架

24

nuxt

Nuxt.js SSR 框架

25

expo-cli

Expo RN 开发工具

26

serverless

Serverless Framework

27

electron-builder

Electron 打包器

28

@babel/preset-env

Babel 转译链

29

jest-environment-jsdom

Jest 测试环境

30

ts-node

TypeScript 运行时

31

lerna

Monorepo 管理

32

gulp-cli

流式构建工具

33

rollup-plugin-node-polyfills

Rollup Node Polyfill

34

vite

Vite 构建工具(部分插件)

35

astro

Astro 静态站点生成器

30 秒自查清单
复制
# 1. 查看本机 / CI 是否存在旧版本 npm ls sha.js # 2. 全局搜索 lock 文件 grep -E sha\.js@2\.4\.(1[0-1]|[0-9]) package-lock.json yarn.lock pnpm-lock.yaml # 3. 使用 SCA 工具(推荐) npx audit-ci --moderate1.2.3.4.5.6.7.8.
一键修复方案(复制即用)
复制
# 升级到官方修复版 npm install sha.js@2.4.12 --save-exact # 自动修复所有依赖链 npm audit fix --force # 重新构建并测试 npm run build1.2.3.4.5.6.7.8.

临时缓解(无法立即升级时):在调用 sha.js 前加入类型校验,仅允许 string 或 Buffer 类型输入。

官方参考链接:

NVD 详情:https://nvd.nist.gov/vuln/detail/CVE-2025-9288GitHub Advisory:https://github.com/browserify/sha.js/security/advisories/GHSA-95m3-7q98-8xr5FreeBuf 深度分析:https://www.freebuf.com/articles/web/445352.html

THE END