CVE-2026-4600jsrsasign是一个流行的JavaScript加密库。该漏洞存在于11.1.1之前的版本中,涉及DSA域参数验证。攻击者可以通过构造恶意的DSA参数(如g=1, y=1, r=1)来绕过签名验证机制,从而伪造DSA签名或X.509证书。这会导致应用程序接受无效的签名,严重威胁身份认证和数据完整性。
漏洞位于jsrsasign的KJUR.crypto.DSA.setPublic函数及相关X.509验证流程中。正常的DSA签名验证依赖于复杂的数学关系,确保只有私钥持有者能生成有效签名。然而,该函数缺乏对输入域参数的充分校验。攻击者可以通过设置g=1(生成元)和y=1(公钥),使得验证方程中的指数运算结果恒为1。进一步配合设置签名参数r=1,验证方程将无条件成立,不再依赖于消息哈希值。这意味着攻击者可以为任意消息生成有效的伪造签名,且能通过X509.verifySignature()的检查,从而绕过基于DSA的身份认证机制,伪造可信证书。