Executive brief
The Crypt::DSA library for Perl, which is used to implement Digital Signature Algorithm (DSA) security, was found to use a weak method for generating security seeds. Because it relied on a predictable random number generator, an attacker could potentially guess the keys used to sign data. This could allow unauthorized parties to forge digital signatures, compromising the authenticity and integrity of secure communications.
Technical details
Crypt::DSA versions prior to 1.20 utilize Perl's built-in 'rand' function to generate seeds for DSA key generation. This function is a pseudo-random number generator (PRNG) that is not cryptographically secure, leading to insufficient entropy (CWE-331). An attacker who can predict the PRNG state may be able to recover private keys or forge digital signatures. The vulnerability is addressed in version 1.20 by migrating to a more secure entropy source. No authentication is required to exploit the resulting weak signatures if they are used in network-facing applications.
Affected products
- Perl CPAN Crypt::DSA versions before 1.20
Timeline
- 2026-05-15: disclosed
- 2026-05-15: advisory