Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain public key and collect several signatures
-
DeliveryRecover known high-bit nonce bias
-
ExploitBuild lattice / hidden number problem
-
ExecutionSolve to recover DSA private key
-
ImpactForge signatures or impersonate key holder
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A04:2025 - Cryptographic Failures
ASVS 5.0
V11 - Cryptography Cryptographic random values
|
| Exploitation Conditions | Exploitation requires that the target generated its DSA key and/or produced signatures using Crypt::DSA before version 1.22, so that the nonce and private key carry the fixed-high-bit bias from makerandom. The attacker must obtain the public key and a modest number of valid signatures created under that key - a single signature is insufficient; the lattice attack needs several. What limits exploitation: it is an offline cryptanalytic attack (no live access to the victim host is required, but signatures must be harvested first), it does not affect keys generated by fixed versions, and it is specific to DSA signing via this module - applications that use Crypt::DSA only for verification, or that never expose signatures, are not directly at risk of key recovery. |
| Impact | Signals are mixed and point to a real-but-not-urgent cryptographic weakness rather than a mass-exploitation event. CVSS 3.1 is 7.5 (AV:N/AC:L/PR:N/UI:N/C:H) reflecting the high-value outcome - full private-key disclosure - with no confidentiality-only scope. However, the CVSS AV:N/AC:L rating understates practical effort: exploitation is an offline mathematical attack requiring the attacker to first collect multiple valid signatures and the public key, so real-world complexity is higher than 'low'. SSVC aligns with a measured posture: Exploitation = none (no observed in-the-wild activity), Automatable = yes (the lattice attack scales once signatures are gathered), Technical Impact = partial. EPSS is low (0.21%, 11th percentile) and the CVE is not in CISA KEV. Net: prioritize for any system that signs with Crypt::DSA and exposes signatures, because the impact (permanent key compromise) is severe and irreversible, but this is not a drop-everything internet-worm scenario. No data conflict of note; the main caveat is that 'modest number of signatures' is not quantified in the advisory. |
| Exploit ScenarioDerived | An attacker passively collects a handful of DSA signatures generated by an application using Crypt::DSA <1.22 (for example from signed messages, tokens, or artifacts) along with the corresponding public key. Because each signing nonce has a fixed high bit, the attacker feeds the signatures into a lattice (hidden-number-problem) solver and recovers the private key offline, then forges arbitrary valid signatures. No public exploit is identified at time of analysis, but the technique is standard cryptographic tooling. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 22, 2026
Private-key recovery in the Crypt::DSA Perl module (all versions before 1.22) stems from a biased random number generator that forces the high bit of every value returned by Crypt::DSA::Util::makerandom, making both the DSA signing nonce and the private key non-uniform. An attacker who obtains the public key plus a modest number of signatures produced under an affected key can reconstruct the private key using a lattice attack. There is no public exploit identified at time of analysis, but the underlying nonce-bias lattice technique is well documented and EPSS remains low at 0.21%.
RemediationAI
Vendor-released patch: Crypt::DSA 1.22 - upgrade to 1.22 or later from CPAN immediately (see the change log at https://metacpan.org/release/TIMLEGGE/Crypt-DSA-1.22/changes and the fix diff at https://metacpan.org/release/TIMLEGGE/Crypt-DSA-1.22/diff/TIMLEGGE/Crypt-DSA-1.21). Upgrading alone is not sufficient: because the bias affects key generation and signing, any key that was ever generated or used to sign with an affected version must be treated as compromised and rotated - generate fresh DSA keys (or migrate to a modern scheme) after patching and re-issue/re-sign as needed. As a compensating step until keys are rotated, limit exposure of existing signatures produced by affected keys (an attacker needs several to run the lattice attack) and revoke trust in the old public keys where a revocation mechanism exists; note this can break signature verification for consumers still pinned to the old key. Consult the CPANSec advisory at https://seclists.org/oss-sec/2026/q3/28 and https://nvd.nist.gov/vuln/detail/CVE-2026-14570 for details.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Crypt::DSA is a pure-Perl implementation of the Digital Signature Algorithm (DSA/DSS). The flaw lives in the utility routine Crypt::DSA::Util::makerandom (lib/Crypt/DSA/Util.pm), which was designed to force the top bit high so that prime-search candidates are exactly N bits wide. That behavior is correct for generating prime candidates but wrong when the same function is reused to draw the per-signature nonce (k) and the long-term private key (x): the fixed high bit removes one bit of entropy and, more importantly, makes the values non-uniform with a known structural bias. DSA is acutely sensitive to nonce bias - even a few known bits of k across several signatures let an attacker set up a hidden number problem and solve for the private key via lattice reduction (LLL/BKZ). This maps to CWE-330 (Use of Insufficiently Random Values); the root cause is not a broken PRNG source but a post-processing step that destroys uniformity.
Know when Crypt 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
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Offline lattice attack requiring collection of multiple signatures raises AC to High; no auth or interaction needed (PR:N/UI:N); impact is full private-key disclosure (C:H), with forgery a downstream consequence not scored here.
Primary rating from Vendor (CPANSec).
CVSS VectorVendor: CPANSec
Lifecycle Timeline
3DescriptionCVE.org
Crypt::DSA versions before 1.22 for Perl draw the DSA signing nonce and private key from a biased random generator, leading to private-key recovery.
"Crypt::DSA::Util::makerandom forces the high bit of every value it returns to obtain an exactly N-bit integer for prime search. The signing nonce and the private key are drawn from makerandom. Because the high bit is always set, the result is not uniform: its top bit is fixed, producing insecure values."
An attacker who collects a modest number of signatures under an affected key, together with the public key, can recover the private key with a lattice attack.
Keys used to sign with an affected version should be considered compromised and new keys should be generated.
Executive ViewAI
Crypt::DSA Perl module (versions prior to 1.22) permits attackers with access to public keys and signatures to recover private keys through cryptanalytic lattice attacks. Organizations relying on this library for DSA cryptographic operations must patch immediately to prevent compromise of cryptographic authentication and data integrity across affected systems.
Apply vendor patch.
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.
Predictable salt generation in Crypt::Password through version 0.28 for Perl weakens the security of stored password has
Perl Crypt::NaCl::Sodium module through 2.002 has potential integer overflows in cryptographic operations that could wea
Crypt::Sodium::XS for Perl bundles a vulnerable version of libsodium (<= 1.0.20) that has a signature verification flaw.
Heap out-of-bounds read in the Perl module Crypt::OpenSSL::PKCS12 before version 1.96 lets a crafted PKCS#12 file leak a
Heap out-of-bounds read in the Crypt::OpenSSL::X509 Perl module (versions before 2.1.3) lets a crafted X.509 certificate
Integer overflow in Crypt::NaCl::Sodium Perl module through version 2.001 on 32-bit systems. The Sodium.xs binding casts
NULL pointer dereference in Crypt::OpenSSL::PKCS12 before version 1.98 for Perl enables process crashes when any caller
Timing side-channel in the Crypt::Password Perl module (versions through 0.28) allows attackers to incrementally guess a
Denial of service in the Crypt::OpenSSL::X509 Perl module before 2.1.3 lets a malformed X.509 certificate crash any Perl
Heap buffer overflow in Crypt::SysRandom::XS before version 0.010 allows denial of service through negative length param
Heap buffer overflow in Perl's Crypt::URandom module (versions 0.41-0.54) allows denial of service through integer wrapa
Crypt::Sodium::XS versions through 0.001000 for Perl has potential integer overflows. Combined aead encryption, combined
EUVD-2026-41713
GHSA-v6rc-95xw-8xp5
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB