Skip to main content
CVE Vulnerability Database

CVE-2026-8700: Crypt::DSA Perl Information Disclosure Flaw

CVE-2026-8700 is an information disclosure vulnerability in Crypt::DSA for Perl caused by predictable seed generation using rand. This article covers the technical details, affected versions, impact, and mitigation.

Published:

CVE-2026-8700 Overview

CVE-2026-8700 affects the Crypt::DSA Perl module in versions before 1.20. The module generates Digital Signature Algorithm (DSA) key seeds using Perl's built-in rand function. Perl's rand is a pseudo-random number generator unsuitable for cryptographic use, producing predictable output. An attacker who can predict or reproduce the seed can recover or forge DSA keys generated by the affected versions. The flaw is classified as [CWE-331: Insufficient Entropy].

Critical Impact

DSA keys generated by Crypt::DSA before version 1.20 rely on a predictable random source, undermining the confidentiality and integrity guarantees of any signatures or keys produced by the module.

Affected Products

  • Crypt::DSA Perl module versions before 1.20
  • Perl applications and tooling that depend on Crypt::DSA for key generation
  • Distributions bundling vulnerable releases of Crypt-DSA from CPAN

Discovery Timeline

  • 2026-05-15 - CVE-2026-8700 published to the National Vulnerability Database (NVD)
  • 2026-05-15 - Issue discussed publicly via the OpenWall oss-security mailing list
  • 2026-05-18 - Last updated in NVD database

Technical Details for CVE-2026-8700

Vulnerability Analysis

The Crypt::DSA module implements the Digital Signature Algorithm for Perl. DSA key generation requires a high-entropy seed to produce the prime parameters and private key value x. In versions before 1.20, the KeyChain.pm component calls Perl's built-in rand function to generate this seed. Perl's rand is backed by a non-cryptographic pseudo-random number generator. Its internal state is small and its output can be reproduced by an attacker who can guess or recover the seed value, which is often derived from process start time or similar low-entropy sources. Any DSA key, signature nonce, or seed produced through this path therefore lacks the entropy required by the DSA specification. Patch details are available in the MetaCPAN release diff for Crypt-DSA 1.20.

Root Cause

The root cause is the use of a non-cryptographic random number generator for security-sensitive operations. Perl's rand does not provide the unpredictability required for key material. This maps directly to [CWE-331: Insufficient Entropy]. A cryptographically secure source such as /dev/urandom or Crypt::URandom is required for seed generation.

Attack Vector

An attacker who obtains a DSA public key or signature generated by an affected version can attempt to reproduce the seed used during key generation. Because Perl's rand state space is limited and often seeded from predictable values, the attacker can enumerate candidate seeds offline and reconstruct the private key. The attacker does not need network access to the victim system to perform this recovery once a public artifact is available. Subsequent signatures forged with the recovered key will validate against the legitimate public key.

No verified public exploit code is available for CVE-2026-8700. Refer to the MetaCPAN release changes for Crypt-DSA 1.20 for the upstream fix.

Detection Methods for CVE-2026-8700

Indicators of Compromise

  • DSA key pairs generated by Perl tooling that imports Crypt::DSA at versions earlier than 1.20
  • Build manifests, cpanfile, or Makefile.PL files pinning Crypt-DSA to 1.19 or earlier
  • Long-lived DSA signing keys whose creation predates deployment of the patched module

Detection Strategies

  • Inventory installed Perl modules across hosts and identify any Crypt::DSA version below 1.20 using cpan -l or corelist style tooling.
  • Scan source repositories and CI pipelines for direct or transitive dependencies on vulnerable Crypt-DSA releases.
  • Flag applications that invoke Crypt::DSA::KeyChain for key generation and correlate with deployment timelines to identify potentially weak keys.

Monitoring Recommendations

  • Track CPAN dependency changes through software composition analysis and alert on installations of Crypt-DSA below 1.20.
  • Monitor authentication and signature verification logs for anomalies on services that rely on DSA keys produced by Perl tooling.
  • Audit certificate and key stores for DSA keys generated on systems known to have run vulnerable versions and schedule them for rotation.

How to Mitigate CVE-2026-8700

Immediate Actions Required

  • Upgrade Crypt::DSA to version 1.20 or later on all systems that use the module.
  • Treat any DSA key, seed, or signature produced by an affected version as untrusted and rotate it.
  • Replace existing DSA keys with new keys generated by patched software, preferably using a modern algorithm such as Ed25519 where feasible.

Patch Information

The maintainer released Crypt-DSA 1.20, which replaces the use of Perl's rand with a cryptographically secure entropy source in lib/Crypt/DSA/KeyChain.pm. Review the MetaCPAN release diff and the release changes for the upstream fix. Distribution package maintainers should rebuild and republish dependent packages against the fixed release.

Workarounds

  • Where immediate upgrade is not possible, replace direct calls to Crypt::DSA key generation with code that supplies entropy from Crypt::URandom or /dev/urandom.
  • Restrict key generation to hosts running the patched 1.20 release and distribute keys to other systems out of band.
  • Migrate signature workflows away from DSA to algorithms supported by actively maintained Perl crypto modules.
bash
# Upgrade Crypt::DSA to the patched release via cpanm
cpanm Crypt::DSA@1.20

# Verify the installed version
perl -MCrypt::DSA -E 'say $Crypt::DSA::VERSION'

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.