Vue、React 無一幸免!嚴重漏洞速查!
sha.js 是 JavaScript 生態(tài)里最常用的輕量級加密庫。
它由 Browserify 社區(qū)維護,體積不足 20 KB,卻實現(xiàn)了 SHA-1、SHA-224、SHA-256、SHA-384、SHA-512 全系列算法,是 crypto-browserify、webpack、web3.js 等數(shù)百個流行包的“根依賴”。
而就在前幾天,美國 NVD(國家漏洞庫)正式發(fā)布 CVE-2025-9288,指向 JavaScript 加密庫 sha.js。

事件概述
美國 NVD(國家漏洞庫)正式發(fā)布 CVE-2025-9288

指向 JavaScript 加密庫 sha.js。該漏洞被評定為 嚴重級(CVSS 9.1),影響 每周 1 400 萬次下載 的 Node.js 與瀏覽器端項目,堪稱 2025 年波及面最廣的前端供應鏈事件之一。

- 官方修復版本:sha.js 2.4.12(已推送 npm)
- 受影響版本:≤2.4.11
- 發(fā)現(xiàn)與披露:GitHub Advisory + FreeBuf 首發(fā)技術(shù)長文
漏洞原理 30 秒速讀
sha.js 在處理輸入時 未校驗數(shù)據(jù)類型與長度,攻擊者通過構(gòu)造畸形對象:
{ length: -1 }即可觸發(fā):
- 哈希降級 / 碰撞:相同摘要對應不同數(shù)據(jù)
- DoS 無限循環(huán):CPU 被瞬間打滿
- 私鑰恢復:若哈希結(jié)果作為隨機數(shù) nonce,可反向推導私鑰
波及面:35 個庫 / 框架 / 工具鏈
我們綜合 NVD、GitHub Advisory、npm 依賴樹 以及 主流安全媒體 的交叉驗證,整理出 35 條 確認受影響的庫與場景.
覆蓋 Web3、前端、Node 服務(wù)、桌面與移動開發(fā)全鏈路。
★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 環(huán)境 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 | 本地區(qū)塊鏈 |
9 | hash.js | ≤1.1.7 | sha.js 的別名發(fā)布 |
10 | keccak | ≤3.0.2 | 以太坊 Keccak 封裝 |
11 | merkle-patricia-tree | ≤4.2.4 | 以太坊狀態(tài)樹 |
12 | mocha | ≤9.2.2 | 測試框架(開發(fā)依賴) |
13 | parcel-bundler | ≤2.8.3 | 零配置打包器 |
14 | web3 | ≤1.7.0 | 以太坊官方 JS SDK |
15 | webpack | ≤4.46.0 / ≤5.74.0 | 構(gòu)建工具 |
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 | 以太坊本地開發(fā)框架 |
22 | remix-dev | Remix 全??蚣?/p> |
23 | next | Next.js SSR 框架 |
24 | nuxt | Nuxt.js SSR 框架 |
25 | expo-cli | Expo RN 開發(fā)工具 |
26 | serverless | Serverless Framework |
27 | electron-builder | Electron 打包器 |
28 | @babel/preset-env | Babel 轉(zhuǎn)譯鏈 |
29 | jest-environment-jsdom | Jest 測試環(huán)境 |
30 | ts-node | TypeScript 運行時 |
31 | lerna | Monorepo 管理 |
32 | gulp-cli | 流式構(gòu)建工具 |
33 | rollup-plugin-node-polyfills | Rollup Node Polyfill |
34 | vite | Vite 構(gòu)建工具(部分插件) |
35 | astro | Astro 靜態(tài)站點生成器 |
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 --moderate一鍵修復方案(復制即用)
# 升級到官方修復版
npm install sha.js@2.4.12 --save-exact
# 自動修復所有依賴鏈
npm audit fix --force
# 重新構(gòu)建并測試
npm run build臨時緩解(無法立即升級時):在調(diào)用 sha.js 前加入類型校驗,僅允許 string 或 Buffer 類型輸入。
官方參考鏈接:
- NVD 詳情:https://nvd.nist.gov/vuln/detail/CVE-2025-9288
- GitHub Advisory:https://github.com/browserify/sha.js/security/advisories/GHSA-95m3-7q98-8xr5
- FreeBuf 深度分析:https://www.freebuf.com/articles/web/445352.html






























