sha.js加密库曝高危漏洞 全球1400万周下载量项目面临安全危机
一款广泛使用的JavaScript加密库sha.js近日曝出关键安全漏洞,该库主要实现安全哈希算法(SHA)家族,每周下载量超过1400万次,是众多Node.js和浏览器应用依赖的核心加密组件。
该漏洞编号为CVE-2025-9288(CVSS评分9.1),源于输入类型检查缺失问题。根据安全公告,”缺乏输入类型检查导致算法计算无效值、出现挂起现象,甚至可令哈希状态回退(包括将带标签哈希转变为无标签哈希)”。
主要攻击向量包括:
哈希状态回退
通过输入{ length: -x }类参数,攻击者可有效回退哈希函数内部状态。这不仅会破坏计算过程,更可将用于确保数据完整性的带标签哈希转为无标签哈希,从根本上削弱其防护效能。
数值计算错误与碰撞攻击
攻击者可构造如下恶意输入:
{ length: buf.length, ...buf, 0: buf[0] + 256 }
该输入虽与原始缓冲区(buf)数值不同,却能生成相同哈希值。而bn.js等其他库可能对这些值作出不同解释,导致危险的不一致现象。
服务拒绝攻击(DoS)
通过提交{ length: '1e99' }类输入,攻击者可导致函数无限期挂起,造成依赖sha.js的应用服务中断。
最严重威胁:私钥提取
当此类碰撞攻击被应用于通过哈希生成随机数的系统时,攻击者可利用不同数值产生相同哈希但不同数字解释的特性,最终推导出加密私钥。正如公告所警告:”不同数值匹配相同随机数的情况,往往即刻导致私钥恢复。”
使用sha.js的开发者和组织应立即升级至已修复版本(2.4.12),以防遭受攻击。








发表评论
您还未登录,请先登录。
登录