当前位置: 首页 > news >正文

【js】加密库sha.js 严重漏洞速查

前言

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

它由 Browserify 社区维护,体积不足 20 KB,却实现了 SHA-1、SHA-224、SHA-256、SHA-384、SHA-512 全系列算法,是 crypto-browserifywebpackweb3.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 }

即可触发:

  1. 哈希降级 / 碰撞:相同摘要对应不同数据
  2. DoS 无限循环:CPU 被瞬间打满
  3. 私钥恢复:若哈希结果作为随机数 nonce,可反向推导私钥

波及面

35 个库 / 框架 / 工具链

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 静态站点生成器

自查清单

# 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

临时缓解(无法立即升级时):

在调用 sha.js 前加入类型校验,仅允许 string 或 Buffer 类型输入。

http://www.dtcms.com/a/352787.html

相关文章:

  • UTXO 模型及扩展模型
  • 香港数字资产交易市场蓬勃发展,监管与创新并驾齐驱
  • 完整实验命令解析:从集群搭建到负载均衡配置(2)
  • 记录使用ruoyi-flowable开发部署中出现的问题以及解决方法(二)
  • 电脑开机显示器不亮
  • 智能安防:以AI重塑安全新边界
  • 欧盟《人工智能法案》生效一年主要实施进展概览(一)
  • docker-runc not installed on system
  • 【科研绘图系列】R语言在海洋生态学数据可视化中的应用:以浮游植物叶绿素和初级生产力为例
  • Kafka 4.0 兼容性矩阵解读、升级顺序与降级边界
  • [特殊字符]论一个 bug 如何经过千难万险占领线上
  • 大数据毕业设计选题推荐-基于大数据的城镇居民食品消费量数据分析与可视化系统-Hadoop-Spark-数据可视化-BigData
  • electron应用开发:命令npm install electron的执行逻辑
  • 搜狗拼音输入法的一个bug
  • 解锁Java分布式魔法:CAP与BASE的奇幻冒险
  • 如何安装 mysql-installer-community-8.0.21.0.tar.gz(Linux 详细教程附安装包下载)​
  • 配置ipv6
  • UE5蓝图接口的创建和使用方法
  • 【C语言强化训练16天】--从基础到进阶的蜕变之旅:Day14
  • 在 Ubuntu 系统上安装 MySQL
  • KDMS V4 重磅升级,智能迁移赋能国产化替代!
  • Ubuntu下MySQL、MongoDB与Redis:从安装到协同的完整指南
  • Hive中的with子句
  • 学习游戏制作记录(存档点和丢失货币的保存以及敌人的货币掉落)8.27
  • 【OpenGL】LearnOpenGL学习笔记16 - 帧缓冲(FBO)、渲染缓冲(RBO)
  • 關於一些特性的小記
  • visual studio2022 配置 PCL 1.13.1
  • SwiftUI 三阵诀:杨过绝情谷悟 “视图布阵” 之道
  • 阿里云——计算服务深度解析与选型
  • 非容器数据库(non-CDB)迁移为可插拔数据库(PDB)步骤