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 在处理输入时 未校验数据类型与长度 ,源码下载攻击者通过构造畸形对象 : 复制{ 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 |