Skip to main content

jsrsasign EUVDEUVD-2026-14377

| CVE-2026-4601 HIGH
Missing Cryptographic Step (CWE-325)
2026-03-23 snyk GHSA-w8q8-93cx-6h7r
8.8
CVSS 4.0 · Vendor: snyk
View

Attack ChainAIDerived

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

  1. Access
    Access DSA signing API
  2. Delivery
    Submit repeated signature requests
  3. Exploit
    Identify signatures with r=0 or s=0
  4. Execution
    Apply key recovery algorithm
  5. Persist
    Extract private key
  6. Impact
    Forge arbitrary signatures

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A04:2025 - Cryptographic Failures
ASVS 5.0
V11 - Cryptography Cryptographic step completeness
Exploitation Conditions

Exploitation requires the target system to use jsrsasign versions before 11.1.1 specifically for DSA signature generation (not just verification). The attacker must either observe multiple signing operations to detect naturally occurring zero-value signatures (probabilistically rare), or actively influence the signing process through repeated requests to force the vulnerable condition. Systems using only RSA or ECDSA algorithms within jsrsasign are not affected. Limiting exploitation: the high attack complexity (AC:H) reflects that attackers need cryptographic expertise to implement the key recovery algorithm, and must have network access to services performing DSA signing operations with observable outputs. Systems that use jsrsasign only for signature verification (not generation) cannot be exploited via this vector. Default installations are vulnerable only if DSA signing functionality is actively utilized in the application code.

Impact

Real-world risk is MODERATE despite the 8.8 CVSS score. The CVSS vector indicates network-accessible attack (AV:N) with high attack complexity (AC:H) requiring no privileges or user interaction, resulting in high confidentiality and integrity impact (VC:H/VI:H). However, SSVC framework rates exploitation as 'none' and automatable as 'no', reflecting the specialized conditions required. EPSS exploitation probability is very low (0.02%, 5th percentile), indicating minimal observed targeting. Publicly available exploit code exists (GitHub gist and PR references confirm POC), but no active exploitation confirmed by CISA KEV or vendor reports. The high attack complexity stems from needing to either observe multiple signing operations to identify vulnerable signatures or actively influence the signing process to force zero values. Risk is concentrated in scenarios where jsrsasign performs server-side DSA signing operations with attacker-controlled or observable inputs. Organizations using jsrsasign only for signature verification (not generation) face negligible risk. The availability of a working POC elevates this from theoretical to practical, but the narrow use case (DSA signing specifically, not RSA/ECC) and lack of widespread exploitation temper urgency compared to remotely exploitable RCE vulnerabilities.

Exploit ScenarioDerived

An attacker positions themselves to observe DSA signing operations by a vulnerable jsrsasign server, such as a JWT signing service or document authentication API. Through repeated requests or timing analysis, the attacker identifies signatures where r or s components equal zero (statistically rare but possible events). Using the publicly available POC code from the GitHub gist (https://gist.github.com/Kr0emer/93789fe6efe5519db9692d4ad1dad586), the attacker algebraically solves for the private key x from these invalid signatures. With the recovered private key, the attacker can forge arbitrary signatures, impersonate legitimate users, sign malicious documents, or decrypt confidential communications protected by the compromised key.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.0% exploitation probability (EPSS)

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

Alert me

AnalysisAIv2 – Apr 29, 2026

Private key recovery is possible in jsrsasign versions before 11.1.1 when attackers force invalid DSA signatures with zero r or s values during the signing process. The library fails to validate or retry these malformed signatures, allowing attackers to algebraically solve for the private key x from the emitted signature. Publicly available exploit code exists demonstrating the key recovery technique (EPSS: 0.02%, percentile 5%), though no confirmed active exploitation. Vendor-released patch: version 11.1.1.

Earlier versions of this analysis (1)
v1 Mar 23, 2026 - 05:45 CVSS 8.7

A cryptographic vulnerability in the jsrsasign JavaScript library allows attackers to recover DSA private keys through invalid signatures. Versions before 11.1.1 fail to validate and retry when DSA signature parameters r or s become zero during the signing process, enabling mathematical recovery of the private key from the malformed signature. A proof-of-concept exploit is available (https://gist.github.com/Kr0emer/93789fe6efe5519db9692d4ad1dad586), and the CVSS score of 8.7 with Proof-of-concept Exploitation status indicates active research interest.

RemediationAI

Upgrade jsrsasign to version 11.1.1 or later, which implements proper validation to reject signatures with r=0 or s=0 and retry with a new nonce as confirmed in GitHub commit 0710e392ec35de697ce11e4219c988ba2b5fe0eb and pull request 645 (https://github.com/kjur/jsrsasign/pull/645). For Node.js projects, update package.json to specify jsrsasign version >=11.1.1 and run npm update or yarn upgrade. Red Hat customers should apply platform-specific patches per advisories at https://access.redhat.com/errata/RHSA-2026:6912 and related RHSA bulletins. If immediate patching is not feasible, implement compensating controls: (1) Migrate DSA signing operations to ECDSA or RSA-PSS algorithms which are not affected by this specific flaw (trade-off: requires certificate reissuance and client compatibility verification), (2) Implement application-layer signature validation that rejects signatures where r=0 or s=0 before accepting them (trade-off: adds processing overhead and may break legitimate but rare edge cases), (3) Restrict signing operations to trusted internal services only, removing network accessibility (trade-off: limits architectural flexibility for distributed systems). Note that verification-only usage of jsrsasign does not expose the private key recovery vector.

Affected VersionsENISA

jsrsasign 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 pure JavaScript cryptographic library implementing RSA, ECC, and DSA signing algorithms. The vulnerability affects the KJUR.crypto.DSA.signWithMessageHash function in the DSA (Digital Signature Algorithm) implementation, classified as CWE-325 (Missing Cryptographic Step). DSA signatures consist of two components (r, s) derived from a random nonce k and the private key x. Proper DSA implementations must validate that neither r nor s equals zero, as this mathematical edge case allows trivial private key extraction. The affected library (CPE: cpe:2.3:a:n/a:jsrsasign:*:*:*:*:*:*:*:*) lacks this critical validation step, emitting invalid signatures without retrying with a new nonce. An attacker who can observe or influence the signing process can force these zero-value conditions and then algebraically derive the private key from the invalid signature parameters.

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 8.8 HIGH
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:H/SA:N/E:P
Red Hat 8.7 HIGH

Primary rating from Vendor (snyk).

CVSS VectorVendor: snyk

Attack Vector
Network
Attack Complexity
High
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
High
Subsequent system: Availability
None

Lifecycle Timeline

4
Analysis Updated
Apr 29, 2026 - 01:33 vuln.today
v2 - CVSS changed
CVSS changed
Apr 29, 2026 - 01:11 NVD
8.7 (HIGH) 8.8 (HIGH)
Patch released
Mar 31, 2026 - 21:13 nvd
Patch available
CVE Published
Mar 23, 2026 - 05:00 nvd
HIGH 8.7

DescriptionCVE.org

Versions of the package jsrsasign before 11.1.1 are vulnerable to Missing Cryptographic Step via the KJUR.crypto.DSA.signWithMessageHash process in the DSA signing implementation. An attacker can recover the private key by forcing r or s to be zero, so the library emits an invalid signature without retrying, and then solves for x from the resulting signature.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 38 npm packages depend on jsrsasign (10 direct, 28 indirect)

Ecosystem-wide dependent count for version 11.1.1.

Executive ViewAI

Why It Matters

jsrsasign library versions before 11.1.1 allow attackers to recover RSA/DSA private keys through forced invalid signature exploitation, directly compromising cryptographic authentication and data protection for any application using the vulnerable library. Organizations relying on jsrsasign for signing operations face loss of confidentiality and integrity guarantees across all protected communications and transactions.

Business Impact: High
Compensating Controls

Apply vendor patch. Immediate interim mitigation: disable or isolate jsrsasign-dependent signing services until patched; implement strict network segmentation to restrict signature request sources; consider temporary use of alternative cryptographic libraries if available.

Threat Intelligence Overview

EPSS Score
0.0%
Top 95% 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 HIGH
CISA KEV No
Public POC No
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
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