Funkcja mg_tls_init w serwerze HTTPS Cesanta Mongoose 7.0 (skompilowanym z obsługą OpenSSL) umożliwia zdalne wykonanie zapisu poza obszarem przydzielonej pamięci (out-of-bounds write). Podatność jest krytyczna, ponieważ może być wykorzystana bez żadnego uwierzytelnienia przez sieć.
▸ Pokaż oryginał (EN)
The mg_tls_init function in Cesanta Mongoose HTTPS server 7.0 (compiled with OpenSSL support) is vulnerable to remote OOB write attack via connection request after exhausting memory pool.
Podatność pojawia się, gdy pula pamięci serwera zostaje wyczerpana. Po osiągnięciu tego stanu, kolejne przychodzące żądanie połączenia powoduje, że funkcja mg_tls_init wykonuje zapis danych poza przydzielonym obszarem bufora (CWE-787: Out-of-bounds Write). Atakujący może wywołać ten stan zdalnie, wysyłając odpowiednio spreparowane żądania połączenia HTTPS, co prowadzi do uszkodzenia obszarów pamięci sąsiadujących z buforem.
Atakujący może doprowadzić do uszkodzenia danych w pamięci procesu serwera, co skutkuje jego awaryjnym zamknięciem (denial of service) lub potencjalnie umożliwia manipulację integrywnością przetwarzanych danych. Wektor CVSS wskazuje na wysoki wpływ na integralność i dostępność systemu.
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 poprawek opublikowanych w repozytorium projektu na GitHub (https://github.com/cesanta/mongoose/issues/1204).
Cesanta Mongoose w wersji 7.0, skompilowany z włączoną obsługą OpenSSL (serwer HTTPS).
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 pamięci (OOB write) w Cesanta Mongoose HTTP server 7.0
Zapis poza granicami bufora (OOB write) w Cesanta Mongoose HTTPS — mg_tls_init
Buffer overflow w Cesanta Mongoose — mg_get_http_header
Integer overflow w Cesanta Mongoose — błąd parsowania pakietów MQTT