Description
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.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| TIMLEGGE | Crypt::DSA | < 1.22 | 1.22 |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 13 | libcrypt-dsa-perl | No fix yet | — |
| Debian 12 | libcrypt-dsa-perl | No fix yet | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 26.04 LTS | libcrypt-dsa-perl | No fix yet | — |
| Ubuntu 25.10 | libcrypt-dsa-perl | No fix yet | — |
| Ubuntu 24.04 LTS | libcrypt-dsa-perl | No fix yet | — |
| Ubuntu 22.04 LTS | libcrypt-dsa-perl | No fix yet | — |
| Ubuntu 20.04 LTS | libcrypt-dsa-perl | No fix yet | — |
Show 2 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 18.04 LTS | libcrypt-dsa-perl | No fix yet | — |
| Ubuntu 16.04 LTS | libcrypt-dsa-perl | No fix yet | — |