W bibliotece linked-hash-map dla języka Rust (wersje przed 0.5.3) tworzony jest niezainicjowany wskaźnik NonNull, co narusza wymaganie dotyczące braku wartości null. Podatność klasyfikowana jest jako krytyczna ze względu na potencjalnie poważne skutki naruszenia bezpieczeństwa pamięci.
▸ Pokaż oryginał (EN)
An issue was discovered in the linked-hash-map crate before 0.5.3 for Rust. It creates an uninitialized NonNull pointer, which violates a non-null constraint.
Biblioteka linked-hash-map niepoprawnie inicjalizuje wskaźnik typu NonNull, tworząc go bez przypisania prawidłowej wartości wskazywanej. Typ NonNull w Rust gwarantuje kontraktowo, że wskaźnik nigdy nie jest null, jednak podatna implementacja narusza ten niezmiennik. Tego rodzaju błąd (CWE-824 — dostęp do niezainicjowanego wskaźnika) może prowadzić do niezdefiniowanego zachowania programu, w tym do błędów pamięci możliwych do wykorzystania przez atakującego.
Atakujący może potencjalnie doprowadzić do wykonania dowolnego kodu, ujawnienia poufnych danych lub destabilizacji działania aplikacji korzystającej z podatnej biblioteki, co odzwierciedla wektor CVSS wskazujący na pełne naruszenie poufności, integralności i dostępności.
Należy zaktualizować bibliotekę linked-hash-map do wersji 0.5.3 lub nowszej. Szczegóły poprawki dostępne są w pull requeście na GitHub oraz w poradniku RUSTSEC-2020-0026.
Crate linked-hash-map dla Rust w wersjach przed 0.5.3 (projekt Linked-Hash-Map Project).
Podatność opisana w rejestrze bezpieczeństwa ekosystemu Rust jako RUSTSEC-2020-0026. Poprawka wprowadzona w wersji 0.5.3 biblioteki.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HLinked Hash Map Project Linked Hash Map
APPLinked-Hash-Map Project< 0.5.3