W bibliotece Cesanta Mongoose 6.18 wykryto podatność typu buffer overflow w funkcji mg_get_http_header, wynikającą z braku sprawdzania granic bufora. Podatność ma ocenę CVSS 9.8 (CRITICAL) i może być zdalnie wywoływana bez uwierzytelnienia.
▸ Pokaż oryginał (EN)
A buffer overflow vulnerability exists in the mg_get_http_header function in Cesanta Mongoose 6.18 due to a lack of bounds checking. A crafted HTTP header can exploit this bug. NOTE: a committer has stated "this will not happen in practice.
Atakujący przesyła spreparowany nagłówek HTTP, który powoduje przepełnienie bufora (buffer overflow) w funkcji mg_get_http_header. Brak weryfikacji granic bufora (CWE-120) sprawia, że odpowiednio skonstruowane dane wejściowe mogą nadpisać obszary pamięci poza przeznaczonym buforem. Exploitacja możliwa jest zdalnie, bez żadnego uwierzytelnienia ani interakcji użytkownika.
Udana exploitacja może prowadzić do ujawnienia poufnych danych, naruszenia integralności systemu oraz utraty jego dostępności — potencjalnie umożliwiając atakującemu przejęcie kontroli nad aplikacją. Wektor CVSS wskazuje na pełny wpływ na poufność, integralność i dostępność (C:H/I:H/A:H).
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Zalecane jest śledzenie aktualności projektu na GitHub (https://github.com/cesanta/mongoose/issues/1135) oraz aktualizacja do nowszej wersji biblioteki. Warto rozważyć filtrowanie i ograniczanie długości nagłówków HTTP na poziomie proxy lub firewall do czasu wdrożenia patcha.
Cesanta Mongoose w wersji 6.18
Jeden z committerów projektu stwierdził, że w praktyce scenariusz exploitacji tej podatności nie powinien wystąpić ('this will not happen in practice'), jednak oficjalnie podatność pozostaje nienaprawiona w wersji 6.18. Ocena CVSS pozostaje krytyczna niezależnie od tego komentarza.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HCesanta Mongoose
APPCesanta6.18
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 Cesanta Mongoose HTTP server 7.0
Zapis poza granicami pamięci (OOB write) w serwerze HTTPS Cesanta Mongoose 7.0
Integer overflow w Cesanta Mongoose — błąd parsowania pakietów MQTT