工信部 网站备案规定,软件开发工程师太累了,网站建设 视频教程,济南网络推广公司哪家好前言sha.js 是 JavaScript 生态里最常用的轻量级加密库。它由 Browserify 社区维护#xff0c;体积不足 20 KB#xff0c;却实现了 SHA-1、SHA-224、SHA-256、SHA-384、SHA-512 全系列算法#xff0c;是 crypto-browserify、webpack、web3.js 等数百个流行包的“根依赖”。而…前言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漏洞原理sha.js 在处理输入时 未校验数据类型与长度攻击者通过构造畸形对象
{ length: -1 }即可触发哈希降级 / 碰撞相同摘要对应不同数据DoS 无限循环CPU 被瞬间打满私钥恢复若哈希结果作为随机数 nonce可反向推导私钥波及面35 个库 / 框架 / 工具链15 个高频直接依赖库#典型受感染版本备注1browserify≤17.0.0打包器2create-hash≤1.2.0被大量加密库二次封装3create-hmac≤1.1.7HMAC 封装4crypto-browserify≤3.12.0Web 环境 crypto polyfill5crypto-js≤4.1.1重新打包 sha.js 旧代码6elliptic≤6.5.4椭圆曲线运算7ethers≤4.0.47 / 5.6.8以太坊 JS SDK8ganache-cli≤6.12.2本地区块链9hash.js≤1.1.7sha.js 的别名发布10keccak≤3.0.2以太坊 Keccak 封装11merkle-patricia-tree≤4.2.4以太坊状态树12mocha≤9.2.2测试框架开发依赖13parcel-bundler≤2.8.3零配置打包器14web3≤1.7.0以太坊官方 JS SDK15webpack≤4.46.0 / ≤5.74.0构建工具20 个间接或场景级受影响库 / 框架 / 工具链#包名 / 组件场景说明16solana/web3.jsSolana 链 JS SDK历史版本锁定17truffle/contractTruffle 测试套件18vue/cli-serviceVue CLI 打包链19angular-devkit/build-angularAngular CLI20react-native-community/cliReact Native CLI21hardhat以太坊本地开发框架22remix-devRemix 全栈框架23nextNext.js SSR 框架24nuxtNuxt.js SSR 框架25expo-cliExpo RN 开发工具26serverlessServerless Framework27electron-builderElectron 打包器28babel/preset-envBabel 转译链29jest-environment-jsdomJest 测试环境30ts-nodeTypeScript 运行时31lernaMonorepo 管理32gulp-cli流式构建工具33rollup-plugin-node-polyfillsRollup Node Polyfill34viteVite 构建工具部分插件35astroAstro 静态站点生成器自查清单
# 1. 查看本机 / CI 是否存在旧版本npm ls sha.js# 2. 全局搜索 lock 文件grep -E sha\.js2\.4\.(1[0-1]|[0-9]) package-lock.json yarn.lock pnpm-lock.yaml# 3. 使用 SCA 工具推荐npx audit-ci --moderate一键修复方案
# 升级到官方修复版npm install sha.js2.4.12 --save-exact# 自动修复所有依赖链npm audit fix --force# 重新构建并测试npm run build临时缓解无法立即升级时在调用 sha.js 前加入类型校验仅允许 string 或 Buffer 类型输入。