Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Division safety checks
|
| Impact | The CVSS 3.1 base score of 5.9 (Medium) with vector AV:L/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L indicates low attack complexity and no privileges required, but the local attack vector constrains exploitability to scenarios where an attacker can supply malicious input to a local or trusted process. The EPSS score status is marked as 'P' (Probable), suggesting moderate exploitation likelihood. A proof-of-concept is publicly available (GitHub gist reference), increasing real-world risk. However, the impact is limited to confidentiality, integrity, and availability degradation rather than complete compromise—this is not a remote code execution vector. The threat is most acute in applications that accept untrusted JWK input, validate RSA signatures using this library, or rely on RSA encryption without additional validation. The vulnerability requires either direct local process compromise or a supply-chain scenario where an attacker controls JWK input (e.g., malicious federation server or API endpoint), making it a moderate but not critical priority for most deployments. |
| Exploit ScenarioDerived | An attacker provides a malicious JWK to a web application that uses jsrsasign to verify JWT signatures from a federated identity provider. The JWK has a valid structure but the modulus field decodes to zero. When jsrsasign attempts to verify a forged JWT signature using this key, the division-by-zero condition causes the modular exponentiation to collapse to zero, bypassing the signature verification check and allowing the attacker to forge valid-appearing authentication tokens. This is facilitated by the low attack complexity (no special conditions required) and can be triggered if the application dynamically fetches and caches JWKs from a compromised or attacker-controlled endpoint. A public proof-of-concept demonstrates the attack chain. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Mar 23, 2026
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.
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.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in npm
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
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.
Know when Jsrsasign gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
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
Primary rating from Vendor (snyk).
CVSS VectorVendor: snyk
Lifecycle Timeline
5DescriptionCVE.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.
Blast Radius
ecosystem impact- 38 npm packages depend on jsrsasign (10 direct, 28 indirect)
Ecosystem-wide dependent count for version 11.1.1.
Executive ViewAI
CVE-2026-4603 presents moderate security risk rated CVSS 5.9. Exploitation could compromise the security of affected deployments. Proof-of-concept code is publicly available. Organizations should apply vendor updates when available and monitor for exploitation.
Apply vendor patch. If patching is delayed: restrict network access and enable monitoring.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Related Vulnerabilities in jsrsasign Cryptographic Implementation Flaws
View all 6An 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
In the jsrsasign package through 10.1.13 for Node.js, some invalid RSA PKCS#1 v1.5 signatures are mistakenly recognized
EUVD-2026-14380
GHSA-464q-cqxq-xhgr
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB