CRITICAL🇬🇧 English

CVE-2026-12205

Crypt::DSA (Perl) — ponowne użycie nonce prowadzi do odzyskania klucza prywatnego

CVSS 9.1pub. 2026-06-15upd. 2026-06-16

Biblioteka Crypt::DSA dla Perl w wersjach przed 1.21 wielokrotnie używała tego samego nonce podczas generowania podpisów DSA, co umożliwia matematyczne odtworzenie klucza prywatnego. Jest to podatność krytyczna, ponieważ kompromituje klucze podpisujące bez żadnej interakcji użytkownika z atakującym.

Pokaż oryginał (EN)

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.

🤖 Analiza AI
Jak działa

Funkcja Crypt::DSA::sign przechowuje materiał nonce (jednorazowy losowy parametr wymagany przez algorytm DSA) w obiekcie Key bez jego późniejszego czyszczenia. Przy pierwszym wywołaniu sign() na danym obiekcie Key generowany jest nonce, który następnie jest ponownie wykorzystywany przez każde kolejne wywołanie sign() na tym samym obiekcie. Skutkuje to generowaniem podpisów z identyczną wartością 'r', co jest matematycznym warunkiem wystarczającym do odtworzenia klucza prywatnego przez atakującego dysponującego co najmniej dwoma podpisami.

Skutki

Atakujący, który pozyska dwa lub więcej podpisów DSA wygenerowanych tym samym kluczem przy użyciu podatnej wersji biblioteki, może matematycznie odtworzyć klucz prywatny. Klucze użyte do podpisywania więcej niż jednej wiadomości przy użyciu podatnej wersji należy uznać za skompromitowane.

Mitygacja

Należy zaktualizować bibliotekę Crypt::DSA do wersji 1.21 lub nowszej. Wszystkie klucze prywatne DSA, które były używane do podpisywania więcej niż jednej wiadomości z użyciem podatnej wersji, należy uznać za skompromitowane i bezzwłocznie wycofać oraz zastąpić nowymi parami kluczy.

Kogo dotyczy

Crypt::DSA dla Perl w wersjach przed 1.21

Uwagi

Podatność została ujawniona 15 czerwca 2026 roku na liście oss-security. Szczegóły techniczne dotyczące braku czyszczenia nonce są dostępne bezpośrednio w kodzie źródłowym wersji 1.20 na metacpan.org (lib/Crypt/DSA.pm, linia 47). Reużycie nonce w DSA jest klasycznym, dobrze udokumentowanym scenariuszem ataku — jego exploitacja wymaga jedynie dostępu do podpisanych danych publicznych.

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
CWE
Referencje