IPBUF安全漏洞报告
English
CVE-2026-4602 CVSS 7.5 高危

CVE-2026-4602 jsrsasign数值类型转换错误漏洞

披露日期: 2026-03-23

漏洞信息

漏洞编号
CVE-2026-4602
漏洞类型
数值类型转换错误
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
jsrsasign

相关标签

jsrsasign数值类型转换签名验证CVE-2026-4602

漏洞概述

jsrsasign 11.1.1 之前的版本存在数值类型转换错误漏洞。该漏洞源于 ext/jsbn2.js 对负指数处理不当。攻击者可通过调用 modPow 并传入负指数,强制计算出错误的模逆值,从而破坏签名验证机制。此漏洞无需认证即可通过网络利用,可能导致签名验证失效,威胁应用安全性。

技术细节

该漏洞位于 jsrsasign 库的 ext/jsbn2.js 文件中,核心问题在于大数运算模块在处理模幂运算时对负指数的逻辑缺陷。正常情况下,模幂运算期望正整数指数,但该库在接收到负指数时未能正确进行类型转换或边界校验,导致数值溢出或计算异常。攻击者利用此漏洞,可诱导系统计算出错误的模逆值。由于数字签名验证(如 RSA)高度依赖模幂运算的正确性,错误的计算结果会导致签名验证流程被破坏。尽管 CVSS 向量主要反映了可用性影响,但从技术角度看,该漏洞本质上破坏了加密签名的完整性验证,使得攻击者可能构造恶意数据绕过安全认证,或导致依赖该库的服务进程崩溃。

攻击链分析

STEP 1
信息收集
识别使用易受攻击版本 jsrsasign (< 11.1.1) 的目标应用程序。
STEP 2
构造攻击载荷
准备包含负指数的恶意输入数据,旨在触发 modPow 函数的异常逻辑。
STEP 3
发送请求
通过网络将包含恶意负指数的请求发送至目标应用程序的签名验证接口。
STEP 4
触发漏洞
应用程序处理请求时,jsrsasign 库错误处理负指数,计算出错误的模逆值。
STEP 5
达成影响
签名验证机制被破坏,导致认证绕过或应用程序服务不可用。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// PoC for CVE-2026-4602: Incorrect Conversion between Numeric Types in jsrsasign // This script demonstrates the vulnerability by triggering modPow with a negative exponent. const jsrsasign = require('jsrsasign'); function testNegativeExponent() { // Initialize a BigInteger const bn = new jsrsasign.BigInteger("1234567890"); // Attempt modular exponentiation with a negative exponent // In versions < 11.1.1, this may compute incorrect modular inverses try { const exponent = -1; const modulus = new jsrsasign.BigInteger("987654321"); console.log("Testing modPow with negative exponent..."); const result = bn.modPowInt(exponent, modulus); // or bn.modPow console.log("Result:", result.toString()); // If the result is incorrect or unexpected, the vulnerability is confirmed. } catch (e) { console.error("Exception thrown:", e); } } testNegativeExponent();

影响范围

jsrsasign < 11.1.1

防御指南

临时缓解措施
在无法立即升级的情况下,应在应用层面对所有传入 modPow 等关键函数的参数进行严格校验,确保指数参数为非负整数,从而拦截潜在的恶意输入。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表