摘要:它由Browserify社区维护,体积不足 20 KB,却实现了 SHA-1、SHA-224、SHA-256、SHA-384、SHA-512 全系列算法,是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。该漏洞被评定为 严重级(CVSS 9.1),影响 每周 1 400 万次下载 的 Node.js 与浏览器端项目,堪称 2025 年波及面最广的前端供应链事件之一。
sha.js 在处理输入时 未校验数据类型与长度,攻击者通过构造畸形对象:
{ length: -1 }#典型受感染版本备注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构建工具#包名 / 组件场景说明16@solana/web3.jsSolana 链 JS SDK(历史版本锁定)17@truffle/contractTruffle 测试套件18@vue/cli-serviceVue CLI 打包链19@angular-devkit/build-angularAngular CLI20@react-native-community/cliReact Native CLI21hardhat以太坊本地开发框架22remix-devRemix 全栈框架23nextNext.js SSR 框架24nuxtNuxt.js SSR 框架25expo-cliExpo RN 开发工具26serverlessServerless Framework27electron-builderElectron 打包器28@babel/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\.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# 重新构建并测试npm run build
来源:不秃头程序员