CRITICAL✓ PATCH🇬🇧 English

CVE-2021-45705

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

CVSS 9.8v3.1pub. 2021-12-27upd. 2024-11-21

W bibliotece nanorand dla języka Rust (wersje przed 0.6.1) implementacja Deref dla TlsWyRand niepoprawnie wyłuskuje surowy wskaźnik (raw pointer), co umożliwia istnienie wielu mutowalnych referencji do tego samego obiektu jednocześnie. Narusza to fundamentalne gwarancje bezpieczeństwa pamięci języka Rust i może prowadzić do poważnych konsekwencji dla integralności, poufności i dostępności aplikacji.

Pokaż oryginał (EN)

An issue was discovered in the nanorand crate before 0.6.1 for Rust. There can be multiple mutable references to the same object because the TlsWyRand Deref implementation dereferences a raw pointer.

🤖 Analiza AI
Jak działa

W Rust istnienie wielu mutowalnych referencji do tego samego miejsca w pamięci w tym samym czasie jest zabronione przez model ownership i borrow checker. Implementacja Deref w typie TlsWyRand dokonuje wyłuskania surowego wskaźnika (raw pointer) bez odpowiednich gwarancji bezpieczeństwa, omijając mechanizmy kontroli kompilatora. W rezultacie możliwe jest uzyskanie wielu jednoczesnych mutowalnych referencji do tego samego obiektu, co tworzy stan wyścigu danych (data race) lub naruszenie pamięci.

Skutki

Atakujący lub złośliwy kod może doprowadzić do naruszenia integralności danych, nieoczekiwanego zachowania programu, uszkodzenia pamięci lub wykonania dowolnego kodu — co tłumaczy ocenę CVSS 9.8 obejmującą pełny wpływ na poufność, integralność i dostępność.

Mitygacja

Należy zaktualizować crate nanorand do wersji 0.6.1 lub nowszej. W pliku Cargo.toml należy ustawić nanorand = "0.6.1" lub wyższą. Szczegóły dostępne w referencji RUSTSEC-2021-0114.

Kogo dotyczy

Biblioteka nanorand (crate) dla języka Rust w wersjach przed 0.6.1 — projekty Nanorand Project Nanorand.

Uwagi

Podatność sklasyfikowana w bazie RustSec jako RUSTSEC-2021-0114. Dotyczy specyficznie ekosystemu Rust — błąd narusza gwarancje bezpieczeństwa pamięci (memory safety) będące kluczową cechą tego języka.

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.0 – 0.6.1 (bez)
🟢
PATCH DOSTĘPNY
Aktualizacja od producenta gotowa. Wdrożenie w ramach standardowego cyklu.
CWE
Referencje

Powiązane podatności

CVE-2020-35926CRITICAL9.8PL ✓ten sam produkt

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