Severity by source
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Primary rating from Vendor (snyk).
CVSS VectorVendor: snyk
Lifecycle Timeline
7Blast Radius
ecosystem impact- 37 npm packages depend on jsrsasign (9 direct, 28 indirect)
Ecosystem-wide dependent count for version 11.1.1.
DescriptionCVE.org
Versions of the package jsrsasign before 11.1.1 are vulnerable to Division by zero due to the RSASetPublic/KEYUTIL parsing path in ext/rsa.js and the BigInteger.modPowInt reduction logic in ext/jsbn.js. An attacker can force RSA public-key operations (e.g., verify and encryption) to collapse to deterministic zero outputs and hide “invalid key” errors by supplying a JWK whose modulus decodes to zero.
AnalysisAI
jsrsasign versions before 11.1.1 contain a division by zero vulnerability in RSA public-key operations caused by improper parsing of JWK moduli that decode to zero. An attacker can supply a malicious JWK to force RSA verify and encryption operations to produce deterministic zero outputs while suppressing invalid key errors, leading to cryptographic bypass and information disclosure. A proof-of-concept exists and the vulnerability has moderate real-world risk due to its low attack complexity and local attack vector.
Technical ContextAI
The vulnerability exists in the jsrsasign library (CPE: cpe:2.3:a:n/a:jsrsasign), specifically in the RSA key parsing logic within ext/rsa.js (RSASetPublic and KEYUTIL functions) and the BigInteger modular exponentiation reduction logic in ext/jsbn.js (BigInteger.modPowInt). The root cause is classified as CWE-369 (Divide By Zero), where insufficient input validation allows a JWK with a modulus that parses to zero to bypass sanity checks. When RSA operations (signing verification, encryption) attempt modular arithmetic with a zero modulus, the division-by-zero condition collapses the computation to a zero result rather than raising an error, allowing an attacker to forge valid-appearing but cryptographically invalid outputs. This is a JavaScript cryptographic library used for JWT and JWK processing in web and Node.js environments.
RemediationAI
Immediately upgrade jsrsasign to version 11.1.1 or later via npm (npm install jsrsasign@^11.1.1) or equivalent package manager. Verify the patch is applied by checking the library version in node_modules or lock files (package-lock.json or yarn.lock), then rebuild and redeploy applications. As a compensating control pending patching, implement strict JWK validation at the application layer to reject any JWK with a modulus value of zero before passing to jsrsasign functions; additionally, validate RSA operation outputs to detect and reject zero results as cryptographic anomalies. Applications that accept JWK input from untrusted sources should implement additional cryptographic verification (e.g., signature re-validation with a hardware security module or alternate trusted library) until fully patched.
An issue was discovered in the jsrsasign package before 8.0.17 for Node.js. Rated critical severity (CVSS 9.8), this vul
An issue was discovered in the jsrsasign package before 8.0.18 for Node.js. Rated critical severity (CVSS 9.8), this vul
The package jsrsasign before 10.5.25 are vulnerable to Improper Verification of Cryptographic Signature when JWS or JWT
An issue was discovered in the jsrsasign package through 8.0.18 for Node.js. Rated high severity (CVSS 7.5), this vulner
Versions of the package jsrsasign before 11.0.0 are vulnerable to Observable Discrepancy via the RSA PKCS1.5 or RSAOAEP
The jsrsasign JavaScript cryptographic library contains a critical vulnerability in its random number generation functio
In the jsrsasign package through 10.1.13 for Node.js, some invalid RSA PKCS#1 v1.5 signatures are mistakenly recognized
Private key recovery is possible in jsrsasign versions before 11.1.1 when attackers force invalid DSA signatures with ze
Cryptographic signature bypass in jsrsasign before 11.1.1 allows remote attackers to forge DSA signatures and X.509 cert
The jsrsasign JavaScript library contains an infinite loop vulnerability in the BigInteger.modInverse function that allo
The jsrsasign JavaScript library before version 11.1.1 contains a vulnerability that allows attackers to break signature
Same weakness CWE-369 – Divide By Zero
View allSame technique Information Disclosure
View allVendor StatusVendor
Share
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-14380
GHSA-464q-cqxq-xhgr