Security Advisories (4)
CVE-2026-8700 (2026-05-15)

Crypt::DSA versions before 1.20 for Perl generate seeds using rand. Seeds were generated using Perl's built-in rand function, which is predictable and unsuitable for security usage.

CVE-2026-8704 (2026-05-15)

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

CVE-2026-12205 (2026-06-15)

Crypt::DSA versions before 1.21 for Perl reused the nonce across signatures, leading to private-key recovery. Crypt::DSA::sign caches the per-signature nonce material in the Key object without ever clearing it. The first sign() on a Key object picks a nonce, and every later sign() on that same object reuses it, producing an identical "r". Keys used to sign more than once with an affected version should be considered compromised.

CVE-2026-14570 (2026-07-05)

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.

NAME

Crypt::DSA::Key::PEM - Read/write DSA PEM files

SYNOPSIS

use Crypt::DSA::Key;
my $key = Crypt::DSA::Key->new( Type => 'PEM', ...);
$key->write( Type => 'PEM', ...);

DESCRIPTION

Crypt::DSA::Key::PEM provides an interface to reading and writing DSA PEM files, using Convert::PEM. The files are ASN.1-encoded and optionally encrypted.

You shouldn't use this module directly. As the SYNOPSIS above suggests, this module should be considered a plugin for Crypt::DSA::Key, and all access to PEM files (reading DSA keys from disk, etc.) should be done through that module.

Read the Crypt::DSA::Key documentation for more details.

AUTHOR & COPYRIGHTS

Please see the Crypt::DSA manpage for author, copyright, and license information.