Skip to main content

Crypt::DSA EUVDEUVD-2026-30668

| CVE-2026-8704 MEDIUM
Files or Directories Accessible to External Parties (CWE-552)
2026-05-15 CPANSec GHSA-5cq6-9f97-wjwx
6.5
CVSS 3.1 · Vendor: CPANSec
View

Attack ChainAIDerived

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

  1. Access
    Submit crafted filename with Perl open() metachar via network
  2. Delivery
    Application passes unsanitized filename to Crypt::DSA Key.pm
  3. Exploit
    2-arg open() interprets '>' or '|' as mode specifier
  4. Execution
    Arbitrary file opened for write or read
  5. Impact
    Overwrite or disclose file contents

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling File access restriction
MITRE ATT&CK

2 techniques across 1 tactic: Collection

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires three conditions to be simultaneously true: the target application uses Crypt::DSA version 1.19 or earlier; the application accepts user-supplied or externally influenced input as a filename argument passed to Crypt::DSA key functions in lib/Crypt/DSA/Key.pm; and that filename is not sanitized to strip Perl open() metacharacters before use. The CVSS vector AV:N/AC:L/PR:N/UI:N applies when a network-accessible interface satisfies these conditions - for example, an API endpoint or web form that designates a DSA key file path. Exploitation is blocked when filenames are hardcoded, sourced from trusted server-side configuration, or sanitized prior to library use. The impact is limited to partial confidentiality (C:L) and partial integrity (I:L) - full system compromise is not indicated by available data.

Impact

CVSS 3.1 scores this 6.5 (Medium) with vector AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N. The network attack vector and absence of required privileges or user interaction suggest unauthenticated remote exploitation in qualifying deployments. However, this rating is context-dependent: exploitation is contingent on a consuming application exposing a code path where an attacker-controlled string reaches Crypt::DSA key-handling functions without sanitization - the library itself does not listen on a network. EPSS is 0.01% (0th percentile), consistent with the narrow exploitation window and absence of known mass exploitation. This CVE is not in CISA KEV, and no public exploit code has been identified at time of analysis. The real-world priority is low for applications using Crypt::DSA with hardcoded or server-controlled key paths, but rises meaningfully for internet-facing Perl applications accepting user-supplied key filenames. No conflict between CVSS signals and description was identified; the network vector is plausible if the library is used in a web context.

Exploit ScenarioDerived

An attacker targets a web application that accepts a user-supplied key file path and passes it to Crypt::DSA for key loading. The attacker submits a filename prefixed with '>' - such as '>/var/www/html/shell.pl' - causing Perl's 2-argument open() to open that path in write mode rather than reading a key file, with attacker-influenced content written to the target. No public exploit code exists, but the technique is well-documented in Perl security literature and requires only knowledge of the application's key-loading interface.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.0% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – May 18, 2026

File overwrite and information disclosure in Crypt::DSA through version 1.19 for Perl expose systems where user-controlled input reaches the library's key handling routines. The root cause is use of Perl's 2-argument open() form in lib/Crypt/DSA/Key.pm, which interprets leading or trailing special characters in filenames as I/O mode specifiers, enabling reads from or writes to arbitrary files. CVSS rates this AV:N/AC:L/PR:N/UI:N (Medium, 6.5), though actual exposure depends on application-level code paths; EPSS is 0.01% and this CVE is not in CISA KEV, indicating no public exploit identified at time of analysis.

RemediationAI

Upgrade Crypt::DSA to version 1.20 or later - the vendor-released patch for this vulnerability. Version 1.20 replaces the unsafe 2-argument open() calls in lib/Crypt/DSA/Key.pm with the 3-argument form, eliminating metacharacter interpretation. The changelog and diff are published at https://metacpan.org/release/TIMLEGGE/Crypt-DSA-1.20/changes. Upgrade can be performed via cpan or cpanm: 'cpanm Crypt::DSA' or 'cpan -i Crypt::DSA'. Where immediate patching is not possible, the specific compensating control is to validate and sanitize filenames in application code before passing them to any Crypt::DSA key function - reject or strip characters including '>', '<', '|', and null bytes. This adds input validation logic to the calling application without modifying the library, but does not address the root cause and may be bypassed if sanitization is incomplete.

Affected VersionsENISA

Crypt::DSA 0 ≤1.19

Affected Packages

euvd crypt_dsa no fix

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 (CPE: cpe:2.3:a:timlegge:crypt::dsa:*:*:*:*:*:*:*:*) is a Perl CPAN module implementing the Digital Signature Algorithm, used for key generation, signing, and verification. The vulnerability maps to CWE-552 (Files or Directories Accessible to External Parties) and originates from the 2-argument form of Perl's open() - open(FH, $filename) - used in lib/Crypt/DSA/Key.pm. In this form, Perl treats leading characters such as '>' (write), '>>' (append), or '<' (read) and trailing '|' (pipe to shell) as mode qualifiers rather than literal filename characters. An application that supplies user-influenced data as the filename argument inadvertently grants those metacharacters semantic power. The fix in version 1.20, visible in the published diff at metacpan.org, converts these calls to the 3-argument form - open(FH, '<', $filename) - which treats the filename purely as a string, eliminating the ambiguity. The oss-security mailing list disclosure (openwall.com, 2026-05-15) and CPANSec reporting corroborate this as a library-level defect.

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

Vendor (CPANSec) PRIMARY 6.5 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N

Primary rating from Vendor (CPANSec) · only source for this CVE.

CVSS VectorVendor: CPANSec

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
Low
Availability
None

Lifecycle Timeline

2
CVSS changed
May 18, 2026 - 16:22 NVD
6.5 (MEDIUM)
CVE Published
May 15, 2026 - 22:18 nvd
UNKNOWN (no severity yet)

DescriptionCVE.org

Crypt::DSA versions through 1.19 for Perl use 2-args open, allowing existing files to be modified.

Threat Intelligence Overview

EPSS Score
0.0%
Top 100% exploitable
Data Quality
6 sources
Confidence: High

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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.0%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.

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

More in Crypt

View all
CVE-2026-16235 CRITICAL
9.8 Jul 20

Predictable salt generation in Crypt::Password through version 0.28 for Perl weakens the security of stored password has

CVE-2026-30909 CRITICAL
9.8 Mar 08

Perl Crypt::NaCl::Sodium module through 2.002 has potential integer overflows in cryptographic operations that could wea

CVE-2025-15444 CRITICAL
9.8 Jan 06

Crypt::Sodium::XS for Perl bundles a vulnerable version of libsodium (<= 1.0.20) that has a signature verification flaw.

CVE-2026-9265 CRITICAL
9.1 Jun 20

Heap out-of-bounds read in the Perl module Crypt::OpenSSL::PKCS12 before version 1.96 lets a crafted PKCS#12 file leak a

CVE-2026-58102 CRITICAL
9.1 Jul 13

Heap out-of-bounds read in the Crypt::OpenSSL::X509 Perl module (versions before 2.1.3) lets a crafted X.509 certificate

CVE-2026-2588 CRITICAL
9.1 Feb 23

Integer overflow in Crypt::NaCl::Sodium Perl module through version 2.001 on 32-bit systems. The Sodium.xs binding casts

CVE-2026-14570 HIGH
7.5 Jul 05

Private-key recovery in the Crypt::DSA Perl module (all versions before 1.22) stems from a biased random number generato

CVE-2026-17510 HIGH
7.5 Aug 09

NULL pointer dereference in Crypt::OpenSSL::PKCS12 before version 1.98 for Perl enables process crashes when any caller

CVE-2026-6656 HIGH
7.5 Jul 20

Timing side-channel in the Crypt::Password Perl module (versions through 0.28) allows attackers to incrementally guess a

CVE-2026-58101 HIGH
7.5 Jul 13

Denial of service in the Crypt::OpenSSL::X509 Perl module before 2.1.3 lets a malformed X.509 certificate crash any Perl

CVE-2026-2597 HIGH
7.5 Feb 27

Heap buffer overflow in Crypt::SysRandom::XS before version 0.010 allows denial of service through negative length param

CVE-2026-2474 HIGH
7.5 Feb 16

Heap buffer overflow in Perl's Crypt::URandom module (versions 0.41-0.54) allows denial of service through integer wrapa

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