
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-4599 is a DSA nonce bias vulnerability in the jsrsasign JavaScript cryptographic library, classified as Incomplete Comparison with Missing Factors (CWE-1023). It affects all versions from 7.0.0 up to (but not including) 11.1.1, specifically the getRandomBigIntegerZeroToMax and getRandomBigIntegerMinToMax functions in src/crypto-1.1.js. The flaw was disclosed by researcher Kr0emer on February 17, 2026, with the fix merged on February 20, 2026, and the CVE published on March 23, 2026. It carries a CVSS v3.1 base score of 9.1 (Critical) and a CVSS v4.0 base score of 9.3 (Critical) (Snyk Advisory, Red Hat Bugzilla).
The root cause is an incorrect sentinel-value comparison in the rejection-sampling loop within crypto-1.1.js. The jsbn library's BigInteger.compareTo() method returns any signed integer (not just -1, 0, or 1), but the vulnerable code checks biMax.compareTo(biRand) != -1 to determine if a random candidate is within range. When biRand > biMax, compareTo() may return a negative value other than -1 (e.g., -2, -3), causing the condition to incorrectly accept out-of-range values and breaking the rejection-sampling invariant (CWE-1023, CWE-338). A secondary issue exists in getRandomBigIntegerMinToMax, where the guard flagCompare == 1 fails silently when compareTo returns any positive integer greater than 1. This biased nonce generation exclusively affects the DSA signing path (dsa-2.0.js signWithMessageHash); ECDSA signing uses an independent RNG helper and is not affected (GitHub Gist, GitHub PR #647).
An unauthenticated remote attacker who can collect a sufficient number of DSA signatures from an application using a vulnerable jsrsasign version can exploit the biased nonce distribution to recover the DSA private key via lattice-based or Hidden Number Problem (HNP) attacks. Private key compromise enables full signature forgery, credential theft, and impersonation of the affected service or user. A ~6% nonce overflow rate was empirically observed in testing, confirming the bias is real and non-negligible; availability is not impacted, but confidentiality and integrity are both rated High (GitHub Gist, Snyk Advisory).
No confirmed weaponized exploit or in-the-wild exploitation has been reported as of the time of publication. A technical analysis document with a functional proof-of-concept collection script (demonstrating out-of-range nonce acceptance and statistical bias measurement) was published by the discoverer Kr0emer on GitHub Gist, but it does not constitute a ready-to-use private key recovery tool (GitHub Gist). The EPSS score is approximately 0.03% (19th percentile), indicating low near-term exploitation probability. The CVE is not currently listed in the CISA Known Exploited Vulnerabilities (KEV) catalog (Snyk Advisory).
poc_collect_jsrsasign_dataset.js), collect signatures and record the raw nonce k values. Observe that approximately 6% of nonces fall outside the valid range [2, q-1] due to the flawed compareTo check.x.jsrsasign_dataset.json, weak_dataset.json) on systems with access to DSA private keys, suggesting local key recovery attempts.jsrsasign, KJUR.crypto.DSA, or signWithMessageHash in unexpected contexts; presence of poc_collect_jsrsasign_dataset.js or similar scripts on the filesystem (GitHub Gist).Upgrade jsrsasign to version 11.1.1 or later, which replaces the sentinel-value comparisons (!= -1, == 1) with sign-based comparisons (>= 0, > 0) that are correct regardless of the magnitude returned by compareTo(). The fix was merged in commit ee4b013 via PR #647 on February 20, 2026. Applications using jsrsasign for DSA signing should treat this as a high-priority update; as a temporary measure, consider disabling DSA-based signing operations until the upgrade is applied. Additionally, any signatures generated with affected versions should be considered potentially compromised and reviewed accordingly (GitHub Commit, Snyk Advisory).
The vulnerability was reported by researcher Kr0emer, who provided a detailed root cause analysis and PoC collection script via GitHub Gist, and submitted the fix directly via pull request to the jsrsasign repository. The disclosure was covered by The Hacker Wire and Yazoul.net, and noted in the ENISA European Vulnerability Database (EUVD-2026-14373). Social media discussion appeared on Mastodon and Bluesky, primarily from security community accounts sharing the CVE details. Red Hat tracked the issue in Bugzilla (Bug 2450207) with high severity, though no downstream Red Hat product advisories had been issued at time of publication (Red Hat Bugzilla, GitHub Gist).
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."