Biblioteka anymap dla języka Rust w wersjach do 0.12.1 zawiera błąd naruszający gwarancje bezpieczeństwa pamięci (soundness) poprzez nieprawidłową konwersję wskaźnika *u8 na *u64. Jest to szczególnie niebezpieczne, ponieważ podważa fundamentalne założenia bezpieczeństwa typów w języku Rust.
▸ Pokaż oryginał (EN)
An issue was discovered in the anymap crate through 0.12.1 for Rust. It violates soundness via conversion of a *u8 to a *u64.
Podatność polega na nieprawidłowej konwersji (CWE-681: Incorrect Conversion between Numeric Types) wskaźnika typu *u8 do wskaźnika typu *u64. Taka operacja narusza zasady soundness Rust, czyli zestaw gwarancji zapewniających, że bezpieczny kod Rust nie może prowadzić do niezdefiniowanego zachowania. Konwersja między wskaźnikami różnych typów bez zachowania wymagań wyrównania (alignment) i rozmiarów typów może prowadzić do niezdefiniowanego zachowania w kodzie oznaczonym jako bezpieczny (safe).
Atakujący lub złośliwe dane wejściowe mogą doprowadzić do niezdefiniowanego zachowania programu, potencjalnie umożliwiając ujawnienie poufnych danych, naruszenie integralności danych lub awarię aplikacji (naruszenie poufności, integralności i dostępności).
Należy zastosować patche dostępne u producenta zgodnie z referencjami (RUSTSEC-2021-0065). Zaleca się aktualizację crate anymap do wersji niezawierającej podatności wskazanej w repozytorium RustSec Advisory Database.
Aplikacje Rust wykorzystujące bibliotekę anymap (crate) w wersjach do 0.12.1 włącznie.
Podatność jest śledzona w bazie RustSec Advisory Database jako RUSTSEC-2021-0065. Pomimo oceny CVSS 9.8 (CRITICAL), brak potwierdzenia aktywnego wykorzystania (nie figuruje w CISA KEV).
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HAnymap Project Anymap
APPAnymap Project≤ 0.12.1