Skip to main content

Jsrsasign CVE-2026-4599

| EUVDEUVD-2026-14373 CRITICAL
Incomplete Comparison with Missing Factors (CWE-1023)
2026-03-23 snyk GHSA-5jx8-q4cp-rhh6
9.3
CVSS 4.0 · Vendor: snyk
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Craft multiple signing requests
  2. Exploit
    Exploit biased DSA nonces from incomplete comparison
  3. Impact
    Recover private key via lattice attack

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2021 - Vulnerable and Outdated Components
ASVS 5.0
V14 - Configuration Dependency management, component inventory
Exploitation Conditions

Remote unauthenticated attacker can exploit jsrsasign versions 7.0.0 through 11.1.0 when the library generates DSA signatures. Attacker intercepts multiple signatures from the vulnerable application, exploits biased nonce generation via incorrect compareTo checks in getRandomBigIntegerZeroToMax/getRandomBigIntegerMinToMax functions, and recovers the private key. No victim interaction required.

Impact

This represents a critical real-world risk with a CVSS score of 9.1 indicating network-based exploitation with low complexity and no privileges required. The attack vector is network-accessible (AV:N), requires low complexity (AC:L), and provides both confidentiality and integrity impact (C:H/I:H). The availability of a public proof-of-concept on GitHub (Kr0emer's Gist) significantly lowers the barrier to exploitation, as attackers can readily implement the private key recovery attack. While no EPSS or KEV data is provided, the combination of public POC availability, remotely exploitable conditions, and the fundamental nature of the cryptographic flaw make this a genuine high-priority issue rather than theoretical risk. Any application using affected jsrsasign versions for DSA signing operations is actively vulnerable to key compromise, which could enable signature forgery and authentication bypass. The patch is available via GitHub pull request 647, making this immediately actionable.

Exploit ScenarioDerived

An attacker monitors signatures generated by a web application using vulnerable jsrsasign for authentication tokens or document signing. By collecting multiple DSA signatures from the same private key, the attacker applies lattice-based cryptanalysis techniques (as demonstrated in the public POC at https://gist.github.com/Kr0emer/081681818b51605c91945126d74b4f20) to exploit the nonce bias and mathematically recover the private signing key. With the recovered key, the attacker can forge arbitrary signatures, impersonate users, sign malicious code updates, or decrypt sensitive communications, all without requiring any authentication or user interaction.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Mar 23, 2026

The jsrsasign JavaScript cryptographic library contains a critical vulnerability in its random number generation functions that allows attackers to recover private DSA keys through nonce bias exploitation. Versions 7.0.0 through 11.1.0 are affected. A proof-of-concept is publicly available (referenced in GitHub Gist), demonstrating the attack feasibility, and the vulnerability requires no authentication or user interaction for remote exploitation.

RemediationAI

Immediately upgrade jsrsasign to version 11.1.1 or later, which addresses the flawed random number generation logic through the fix implemented in GitHub pull request 647 (https://github.com/kjur/jsrsasign/pull/647) and committed as ee4b013478366cb16cea9a4bdfb218b6077f83b1 (https://github.com/kjur/jsrsasign/commit/ee4b013478366cb16cea9a4bdfb218b6077f83b1). Review the Snyk advisory at https://security.snyk.io/vuln/SNYK-JS-JSRSASIGN-15370939 for additional guidance. Organizations unable to immediately upgrade should rotate all DSA keys that were generated or used with affected versions, as previously generated signatures may have already leaked information about the private key. Consider migrating from DSA to more modern signature algorithms like ECDSA or EdDSA where feasible, as DSA is increasingly deprecated in favor of more robust alternatives.

Affected VersionsENISA

jsrsasign 7.0.0 <11.1.1

Affected Packages

npm jsrsasign fix: 11.1.1

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

jsrsasign is a widely-used pure JavaScript implementation of cryptographic operations including RSA, DSA, ECC, and X.509 certificates, commonly deployed in Node.js applications and browser-based cryptography. The vulnerability stems from CWE-1023 (Incomplete Comparison with Missing Factors) in the getRandomBigIntegerZeroToMax and getRandomBigIntegerMinToMax functions within src/crypto-1.1.js. These functions incorrectly validate randomly generated numbers through flawed compareTo checks, allowing out-of-range values to be accepted as valid candidates. When used for DSA signature generation, this flaw creates a measurable bias in the nonce values, which can be exploited through mathematical analysis of multiple signatures to extract the private signing key, fundamentally breaking the security guarantees of DSA.

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

Vendor (snyk) PRIMARY 9.3 CRITICAL
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
Red Hat 9.1 HIGH

Primary rating from Vendor (snyk).

CVSS VectorVendor: snyk

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

3
CVSS changed
Jun 22, 2026 - 03:22 NVD
9.1 (CRITICAL) 9.3 (CRITICAL)
Patch released
Mar 31, 2026 - 21:13 nvd
Patch available
CVE Published
Mar 23, 2026 - 05:00 nvd
CRITICAL 9.1

DescriptionCVE.org

Versions of the package jsrsasign from 7.0.0 and before 11.1.1 are vulnerable to Incomplete Comparison with Missing Factors via the getRandomBigIntegerZeroToMax and getRandomBigIntegerMinToMax functions in src/crypto-1.1.js; an attacker can recover the private key by exploiting the incorrect compareTo checks that accept out-of-range candidates and thus bias DSA nonces during signature generation.

Executive ViewAI

Why It Matters

A critical vulnerability in the jsrsasign cryptographic library (CVE-2026-4599, CVSS 9.1) enables attackers to extract private DSA keys remotely without authentication. Any application or service using affected versions 7.0.0-11.1.0 faces immediate risk of cryptographic compromise, potentially exposing encrypted communications, digital signatures, and authenticated sessions.

Business Impact: Severe
Compensating Controls

No patch currently available. Interim mitigations: (1) Disable jsrsasign DSA operations if functionality permits; (2) Restrict network access to affected applications via WAF/network segmentation to trusted IPs only; (3) Monitor for suspicious cryptographic operations and key derivation patterns; (4) Implement certificate pinning to reduce reliance on DSA signatures; (5) Migrate to alternative cryptographic libraries that do not use jsrsasign; (6) Increase logging and alerting on authentication/signature failures.

Threat Intelligence Overview

EPSS Score
0.0%
Top 91% exploitable
Threat Intel
1
1 source
Data Quality
8 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA Vendor GitHub VulDB

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.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Out-of-Cycle
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
Very High
Technical Impact
Total

Priority Score

46
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +46
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

Vendor StatusVendor

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy