Podatność w bibliotece zeroize_derive dla języka Rust (wersje przed 1.1.1) powoduje, że zwalniana pamięć przypisana do typów enum nie jest prawidłowo zerowana. Stanowi to zagrożenie dla poufności danych wrażliwych, takich jak klucze kryptograficzne czy hasła, które mogą pozostać w pamięci po ich zwolnieniu.
▸ Pokaż oryginał (EN)
An issue was discovered in the zeroize_derive crate before 1.1.1 for Rust. Dropped memory is not zeroed out for an enum.
Biblioteka zeroize_derive dostarcza mechanizm automatycznego zerowania zawartości pamięci po zwolnieniu obiektów (implementacja cechy Zeroize). W wersjach przed 1.1.1 mechanizm ten nie działał poprawnie dla typów enum — po zwolnieniu (drop) obiektu będącego enumem, jego zawartość w pamięci nie była nadpisywana zerami. Zgodnie z klasyfikacją CWE-459 jest to błąd niepełnego czyszczenia (incomplete cleanup). Oznacza to, że dane, które miały zostać bezpowrotnie usunięte, mogą być nadal dostępne w pamięci procesu.
Atakujący lub inny kod działający w tym samym procesie może potencjalnie odczytać wrażliwe dane (np. klucze prywatne, sekrety kryptograficzne) pozostałe w pamięci po zwolnieniu obiektów enum. Naruszeniu ulega poufność, integralność oraz dostępność zasobów, co odzwierciedla maksymalny wynik CVSS 9.8.
Należy zaktualizować crate zeroize_derive do wersji 1.1.1 lub nowszej. Szczegóły dostępne w referencjach producenta pod adresem https://rustsec.org/advisories/RUSTSEC-2021-0115.html
Crate zeroize_derive w wersjach przed 1.1.1 dla języka Rust — wszystkie aplikacje i biblioteki używające zeroize_derive do bezpiecznego czyszczenia typów enum.
Podatność opisana w bazie RustSec jako RUSTSEC-2021-0115. Dotyczy specyficznie typów enum — inne typy danych (np. struktury) mogły być obsługiwane poprawnie przez wcześniejsze wersje biblioteki.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HZeroize Derive Project Zeroize Derive
APPZeroize Derive Project< 1.1.1