Biblioteka http (crate) dla języka Rust w wersjach przed 0.1.20 zawiera krytyczną podatność typu double-free (CWE-415) w komponencie HeaderMap::Drain. Błąd umożliwia naruszenie bezpieczeństwa pamięci poprzez użycie surowego wskaźnika (raw pointer), co podważa gwarancje poprawności (soundness) zapewniane przez język Rust.
▸ Pokaż oryginał (EN)
An issue was discovered in the http crate before 0.1.20 for Rust. The HeaderMap::Drain API can use a raw pointer, defeating soundness.
API HeaderMap::Drain w bibliotece http korzysta wewnętrznie z surowego wskaźnika (raw pointer), omijając tym samym mechanizmy bezpieczeństwa pamięci wbudowane w język Rust. Prowadzi to do sytuacji double-free, czyli dwukrotnego zwolnienia tego samego obszaru pamięci. Tego rodzaju błąd narusza tzw. soundness — fundamentalną właściwość Rust gwarantującą, że bezpieczny kod nie może powodować niezdefiniowanego zachowania (undefined behavior).
Atakujący może potencjalnie wykonać dowolny kod (RCE), doprowadzić do uszkodzenia pamięci procesu lub jego awaryjnego zakończenia. Pełna triada CIA jest zagrożona — możliwa jest utrata poufności, integralności i dostępności danych.
Należy zaktualizować bibliotekę http do wersji 0.1.20 lub nowszej, w której problem został usunięty. Szczegóły dostępne w referencjach producenta: https://rustsec.org/advisories/RUSTSEC-2019-0034.html
Biblioteka http (crate) dla języka Rust w wersjach przed 0.1.20 (produkt Hyper Http).
Podatność dotyczy naruszenia zasady soundness języka Rust — mechanizmu, który ma gwarantować, że nawet bez użycia bloków unsafe kod nie powoduje niezdefiniowanego zachowania. Identyfikator doradztwa w bazie RustSec: RUSTSEC-2019-0034.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HHyper Http
APPHyper< 0.1.20
Powiązane podatności
An issue was discovered in the http crate before 0.1.20 for Rust. An integer overflow in HeaderMap::reserve() ...
HTTP request smuggling i RCE w bibliotece hyper dla Rust
An issue was discovered in hyper v0.13.7. h2-0.2.4 Stream stacking occurs when the H2 component processes HTTP...
Hyperium Hyper before 0.14.19 does not allow for customization of the max_header_list_size method in the H2 th...
util.c in runV 1.0.0 for Docker mishandles a numeric username, which allows attackers to obtain root access by...