Security Advisories (5)
CVE-2011-3599 (2011-10-10)

The Crypt::DSA (aka Crypt-DSA) module 1.17 and earlier for Perl, when /dev/random is absent, uses the Data::Random module, which makes it easier for remote attackers to spoof a signature, or determine the signing key of a signed message, via a brute-force attack.

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::Util - DSA Utility functions

SYNOPSIS

use Crypt::DSA::Util qw( func1 func2 ... );

DESCRIPTION

Crypt::DSA::Util contains a set of exportable utility functions used through the Crypt::DSA set of libraries.

bitsize($n)

Returns the number of bits in the Math::Pari integer object $n.

bin2mp($string)

Given a string $string of any length, treats the string as a base-256 representation of an integer, and returns that integer, a Math::Pari object.

mod_exp($a, $exp, $n)

Computes $a ^ $exp mod $n and returns the value. The calculations are done using Math::Pari, and the return value is a Math::Pari object.

mod_inverse($a, $n)

Computes the multiplicative inverse of $a mod $n and returns the value. The calculations are done using Math::Pari, and the return value is a Math::Pari object.

AUTHOR & COPYRIGHTS

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