
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-4598 is an infinite loop (Denial of Service) vulnerability in the jsrsasign JavaScript cryptographic library, affecting all versions before 11.1.1. The flaw exists in the bnModInverse function within ext/jsbn2.js, where the BigInteger.modInverse implementation fails to handle zero or negative inputs, causing the process to hang permanently when supplied with crafted values such as modInverse(0, m) or modInverse(-1, m). The vulnerability was disclosed by researcher Kr0emer on February 18, 2026, and published publicly on March 23, 2026. It carries a CVSS v3.1 base score of 7.5 (High) and a CVSS v4.0 base score of 7.7 (High) (Snyk Advisory, Red Hat Bugzilla).
The root cause is classified as CWE-835 (Loop with Unreachable Exit Condition) and CWE-1287 (Improper Validation of Specified Type of Input). The bnModInverse function implements a binary extended GCD algorithm that assumes its input a is a positive integer coprime to m. Two classes of invalid input trigger infinite loops: Class A — zero input (a = 0), where gcd(0, m) = m ≠ 1 makes the loop exit condition permanently unreachable; and Class B — negative input, where the negative sign is not reduced modulo m before entering the binary GCD loop, causing subtraction steps to oscillate without convergence. Affected internal code paths include RSA blinding, EC field arithmetic (ECFieldElementFp.prototype.divide), and DSA/ECDSA signature verification internals. The fix, merged in PR #648, adds input normalization (x = this.mod(m)) and an early return when the normalized value is zero (GitHub Gist PoC, GitHub PR #648, GitHub Commit).
Successful exploitation causes a permanent hang of the Node.js process, resulting in a complete denial of service with high availability impact and no confidentiality or integrity impact. Any application using jsrsasign where untrusted input can reach the modInverse function — including those performing RSA operations, EC point arithmetic, or DSA/ECDSA signature verification — is vulnerable. A single crafted request is sufficient to permanently block the Node.js event loop with no timeout or automatic recovery, requiring a process restart to restore service (Snyk Advisory, GitHub Gist PoC).
A proof-of-concept script was published by the discoverer Kr0emer demonstrating both zero-input and negative-input hang vectors, though it requires local library access and does not constitute a weaponized remote exploit (GitHub Gist PoC). The CVSS v4.0 exploit maturity is rated "Proof of Concept." No confirmed in-the-wild exploitation has been reported, and the vulnerability is not listed in the CISA KEV catalog. The EPSS score is approximately 0.042% (24th percentile), indicating low near-term exploitation probability (Snyk Advisory). No threat actor attribution is available.
npm list jsrsasign or dependency scanning tools like Snyk or Qualys). Focus on services that accept untrusted cryptographic input — such as signature verification endpoints, certificate parsing APIs, or TLS-related services.BigInteger.modInverse — for example, ECDSA/DSA signature verification, RSA blinding operations, or EC point arithmetic.modInverse to be called with a zero or negative BigInteger value. For ECDSA/DSA verification, this could be a crafted signature where the s component is 0 or negative. For EC operations, a crafted point with a zero z-coordinate may trigger the vulnerable path.bnModInverse function enters an infinite loop, permanently blocking the Node.js event loop. The process becomes unresponsive to all subsequent requests, achieving denial of service (GitHub Gist PoC, Snyk Advisory).The primary remediation is to upgrade jsrsasign to version 11.1.1 or later, which includes the fix merged in PR #648 that adds input normalization and zero-check guards to bnModInverse (GitHub Commit, GitHub PR #648). As a temporary workaround where immediate patching is not possible, implement application-level input validation to reject zero or negative values before they are passed to any modInverse-calling code path. Additionally, consider restricting network access to services using jsrsasign until the update can be applied, and configure process supervisors (e.g., PM2, systemd) with watchdog timers to automatically restart hung processes (Snyk Advisory).
The vulnerability was reported to Red Hat's security team and tracked as Bug 2450210 with high severity (Red Hat Bugzilla). Social media activity was observed on Mastodon and Bluesky shortly after disclosure, with automated CVE tracking accounts broadcasting the advisory. Coverage was also noted on threat intelligence aggregators including radar.offseq.com and exploit-intel.com. No major vendor statements beyond Red Hat's tracking entry or notable independent researcher commentary beyond the discoverer's own write-up have been identified.
Fix availability across major Linux distributions and their releases.
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."