Funkcja mg_http_serve_file w serwerze HTTP Cesanta Mongoose 7.0 jest podatna na zdalny atak zapisu poza granicami przydzielonego bufora (out-of-bounds write). Podatność może być wykorzystana zdalnie bez uwierzytelnienia, co czyni ją poważnym zagrożeniem dla systemów udostępniających tę bibliotekę.
▸ Pokaż oryginał (EN)
The mg_http_serve_file function in Cesanta Mongoose HTTP server 7.0 is vulnerable to remote OOB write attack via connection request after exhausting memory pool.
Atakujący wysyła żądanie połączenia do serwera HTTP w momencie, gdy pula pamięci (memory pool) zostanie wyczerpana. W takim stanie funkcja mg_http_serve_file dokonuje zapisu danych poza przydzielonym obszarem pamięci (out-of-bounds write, CWE-787). Wynika to z braku odpowiedniej walidacji dostępności zasobów pamięci przed wykonaniem operacji zapisu. Błąd można wywołać zdalnie, bez konieczności posiadania jakichkolwiek uprawnień ani interakcji użytkownika.
Atakujący może doprowadzić do uszkodzenia danych w pamięci procesu, co w konsekwencji może skutkować awarią serwera (denial of service) lub nieautoryzowaną modyfikacją danych. Ze względu na charakter błędu OOB write istnieje również potencjalne ryzyko wykonania dowolnego kodu, choć możliwość ta zależy od konkretnej implementacji i środowiska uruchomieniowego.
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Zaleca się aktualizację biblioteki Cesanta Mongoose do wersji wyższej niż 7.0 oraz śledzenie oficjalnego repozytorium projektu na GitHub w celu weryfikacji dostępności poprawki.
Cesanta Mongoose HTTP server w wersji 7.0
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:HCesanta Mongoose
APPCesanta7.0
Powiązane podatności
Zapis plików poza docelowym folderem w Cesanta Mongoose (mg_http_upload)
Zapis poza granicami bufora (OOB write) w Cesanta Mongoose HTTPS — mg_tls_init
Zapis poza granicami pamięci (OOB write) w serwerze HTTPS Cesanta Mongoose 7.0
Buffer overflow w Cesanta Mongoose — mg_get_http_header
Integer overflow w Cesanta Mongoose — błąd parsowania pakietów MQTT