Biblioteka Crypt::Password w wersjach do 0.28 dla języka Perl generuje nieprzewidywalne, ale kryptograficznie słabe wartości soli (salt) przy użyciu funkcji rand(). Czyni to skróty haseł podatnymi na ataki słownikowe i brute-force ze wstępnie obliczonymi wartościami.
▸ Pokaż oryginał (EN)
Crypt::Password versions through 0.28 for Perl generate insecure random values for salts. These versions use the built-in rand function, which is predictable and unsuitable for cryptography.
Podatność wynika z użycia wbudowanej funkcji rand() języka Perl do generowania soli kryptograficznej. Funkcja rand() jest generatorem liczb pseudolosowych przeznaczonym do zastosowań ogólnych, a nie kryptograficznych — jej wyniki są przewidywalne i nie spełniają wymogów bezpieczeństwa kryptograficznego (CWE-338). Atakujący, który jest w stanie przewidzieć lub odtworzyć użytą sól, może znacząco przyspieszyć łamanie skrótów haseł przechowywanych w systemie.
Atakujący może odtworzyć wartości soli używanych do hashowania haseł, co umożliwia skuteczniejsze ataki na skróty haseł użytkowników, prowadząc do przejęcia kont i nieautoryzowanego dostępu do chronionych zasobów.
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Zaleca się aktualizację biblioteki Crypt::Password do wersji wyższej niż 0.28, w której problem powinien zostać rozwiązany przez zastąpienie rand() kryptograficznie bezpiecznym generatorem liczb losowych.
Crypt::Password dla Perl w wersjach do 0.28 włącznie
Podatność zgłoszona na liście oss-security w dniu 2026-07-20. Kod odpowiedzialny za błąd znajduje się w pliku lib/Crypt/Password.pm w liniach 306–309 wersji 0.28.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H