CRITICAL🇬🇧 English

CVE-2020-35926

Nanorand (Rust): Generator losowy zwraca same zera przez błąd konwersji typów

CVSS 9.8v3.1pub. 2020-12-31upd. 2024-11-21

Biblioteka nanorand dla języka Rust w wersjach przed 0.5.1 zawiera krytyczny błąd powodujący, że każdy generator liczb losowych (w tym ChaCha) zwraca wyłącznie wartość zero. Skutkuje to całkowitym brakiem losowości, co podważa bezpieczeństwo wszelkich mechanizmów kryptograficznych i uwierzytelniających opartych na tej bibliotece.

Pokaż oryginał (EN)

An issue was discovered in the nanorand crate before 0.5.1 for Rust. It caused any random number generator (even ChaCha) to return all zeroes because integer truncation was mishandled.

🤖 Analiza AI
Jak działa

Błąd wynika z nieprawidłowej obsługi obcinania liczby całkowitej (integer truncation) podczas konwersji typów (CWE-681). W wyniku tego przekształcenia wartości generowane przez algorytm losowy są sprowadzane do zera niezależnie od wewnętrznego stanu generatora. Oznacza to, że nawet kryptograficznie silny generator ChaCha produkuje ciąg samych zer zamiast pseudolosowych danych, co czyni go całkowicie bezużytecznym z punktu widzenia bezpieczeństwa (CWE-330 — niewystarczająca losowość).

Skutki

Atakujący lub złośliwy podmiot może przewidzieć wszystkie wartości generowane przez bibliotekę (są one stale równe zero), co umożliwia łamanie kluczy kryptograficznych, tokenów sesji, identyfikatorów jednorazowych (nonce) oraz innych sekretów zależnych od losowości. Może to prowadzić do przełamania poufności, integralności i dostępności systemów wykorzystujących tę bibliotekę.

Mitygacja

Należy zaktualizować bibliotekę nanorand do wersji 0.5.1 lub nowszej. Zaleca się pilną weryfikację wszystkich aplikacji Rust używających tej zależności oraz unieważnienie i regenerację wszelkich sekretów (kluczy, tokenów, nonce) wygenerowanych przy użyciu podatnych wersji biblioteki.

Kogo dotyczy

Biblioteka nanorand crate dla języka Rust w wersjach przed 0.5.1 (projekt Nanorand Project Nanorand).

Uwagi

Szczegóły podatności zostały udokumentowane w bazie RustSec pod identyfikatorem RUSTSEC-2020-0089.

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
  • Nanorand Project Nanorand

    APP
    Nanorand Project
    < 0.5.1
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
CWE
Referencje

Powiązane podatności

CVE-2021-45705CRITICAL9.8PL ✓ten sam produkt

Nanorand (Rust): wielokrotne mutowalne referencje przez błąd w TlsWyRand Deref