Podatności Mongoose
15 znanych podatności CVE w Mongoose, przetłumaczonych i ocenionych.
- CVE-2026-73257Krytyczne
Podatność w Mongoose przed wersją 7.22 pozwala zdalnemu nieuwierzytelnionemu atakującemu na wysłanie żądania HTTP zawierającego zarówno Content-Length, jak i Transfer-Encoding: chunked. Kontrolery cl_count i te_count akceptują oba nagłówki i priorytetyzują kodowanie chunked, co prowadzi do desynchronizacji CL.TE i umożliwia wstrzyknięcie żądań w kontekście innego użytkownika.
- CVE-2026-73256Krytyczne
Podatność w Mongoose przed wersją 7.22 umożliwia zdalnemu nieuwierzytelnionemu atakującemu wykorzystanie wdrożenia z odwrotnym proxy HTTP/1.0 poprzez wysłanie żądania z Transfer-Encoding: chunked i sprzecznym framingiem. Funkcja http_cb() testuje hm.proto.len z niemożliwym warunkiem większym niż osiem, co powoduje, że is_http_1_0 nigdy nie jest ustawiane, a Mongoose przetwarza chunked encoding, które proxy HTTP/1.0 może zignorować.
- CVE-2026-73253Krytyczne
Podatność w Mongoose przed wersją 7.22 pozwala atakującemu sieciowemu z certyfikatem wildcard dla domeny nadrzędnej na podszywanie się pod głębsze subdomeny wobec klienta używającego wbudowanego stosu TLS. Funkcje mg_tls_verify_cert_san() i mg_tls_verify_cert_cn() wywołują mg_match(), którego wildcard może przekraczać granice etykiet DNS, więc wzorzec taki jak *.example.com może pasować do foo.bar.example.com.
- CVE-2026-73251Krytyczne
Podatność w Mongoose przed wersją 7.23 pozwala atakującemu sieciowemu na podszywanie się pod serwer TLS wobec klienta Mongoose skonfigurowanego z pakietem wielu certyfikatów CA. Funkcja mg_tls_init() przechowuje pakiet w tls->ca_bundle_der, podczas gdy tls->ca_der.len pozostaje zerowe, a mg_tls_recv_cert() używa tls_bundle_find() do akceptacji dopasowania Common Name bez weryfikacji podpisu certyfikatu.
- CVE-2026-73261Wysokie
Mongoose, wbudowany serwer webowy i biblioteka sieciowa, przed wersją 7.23 nie odrzuca opcji TCP, której zadeklarowana długość opts[1] przekracza pozostałe bajty opcji. W handle_opt() sekwencja NOP, po której następuje obcięta opcja MSS, powoduje odczyt opts[3] poza zadeklarowanym obszarem opcji i użycie go jako dolnego bajtu dmss. Nieuwierzytelniony zdalny peer może uszkodzić wartość MSS dla połączenia, przez co późniejsze wywołania mg_send() wysyłają obcięte lub zerowej długości ładunki aplikacji, podczas gdy połączenie TCP wygląda na sprawne.
- CVE-2026-73260Wysokie
Mongoose, wbudowany serwer webowy i biblioteka sieciowa, przed wersją 7.23 w parserze certyfikatów TLS wybieranym przez MG_TLS_BUILTIN nie weryfikuje, czy długość elementu DER w formacie long-form mieści się w pozostałym buforze certyfikatu. W mg_der_to_tlv() i mg_der_next() długość kontrolowana przez peera może przesunąć parser poza certyfikat i spowodować niedomiar pozostałej długości uint32_t, przez co mg_tls_parse_cert_der() kontynuuje pracę na nieprawidłowym wskaźniku. Nieuwierzytelniony złośliwy serwer TLS lub klient przedstawiający certyfikat serwerowi skonfigurowanemu do certyfikatów klienta może wywołać odczyt poza zakresem i odmowę usługi podczas uzgadniania.
- CVE-2026-73252Wysokie
Mongoose, wbudowany serwer webowy i biblioteka sieciowa, przed wersją 7.23 w stosie TLS wybieranym przez MG_TLS_BUILTIN w src/tls_builtin.c akceptuje rekord TLS 1.3, którego odszyfrowany rozmiar wynosi dokładnie 16 bajtów znacznika uwierzytelniającego, bez tekstu jawnego i bajtu ContentType. W mg_tls_recv_record() sprawdzenie długości msgsz przepuszcza taki rekord, a obliczenie recv_len ulega niedomiarowi do SIZE_MAX, przez co późniejszy krok uzgadniania traktuje nieaktualną zawartość bufora jako zaufaną wiadomość o praktycznie nieograniczonej długości. Nieuwierzytelniony złośliwy peer TLS może wywołać odczyt poza zakresem sterty przed walidacją certyfikatu lub Finished, powodując zdalną odmowę usługi.
- CVE-2026-63626Wysokie
Mongoose, wbudowany serwer webowy i biblioteka sieciowa, przed wersją 7.23 w funkcji ppp_handle_ipv6cp() w src/l2_ppp.c ufa 16-bitowemu polu len IPv6CP bez sprawdzenia go względem rozmiaru odebranego ładunku. W łączu PPP lub PPPoE używającym MG_ENABLE_TCPIP i MG_ENABLE_IPV6 nieuwierzytelniony sąsiadujący peer może zakończyć wymaganą wymianę LCP i wysłać krótki Configure-Request z nadmierną długością, powodując odczyt poza recv_queue.buf i zapis poza tx.buf w ppp_tx_frame(). To samo nadużycie długości może również ujawnić sąsiednie bajty sterty w odpowiedzi lub zawiesić pętlę zdarzeń przez find_opt().
- CVE-2026-73259Średnie
Mongoose to wbudowany serwer WWW i biblioteka sieciowa. Przed wersją 7.22 zdalny atakujący może wysłać spreparowaną ścieżkę zakodowaną procentowo do wdrożenia używającego MG_ENABLE_DIRLIST i nakłonić użytkownika do jej odwiedzenia. Funkcje mg_http_serve_dir() i listdir() w src/http.c umieszczają zdekodowany URI żądania w elementach title i h1 bez kodowania encji HTML. Powstały odbity cross-site scripting wykonuje się w kontekście Mongoose i może ujawnić dane sesji lub wykonać działania jako ofiara. Problem naprawiono w wersji 7.22.
- CVE-2026-73258Średnie
Mongoose to wbudowany serwer WWW i biblioteka sieciowa. Przed wersją 7.22 zdalny atakujący może umieścić pojedynczy znak powrotu karetki lub nowej linii w danych multipart przetwarzanych przez mg_http_next_multipart() w src/http.c. Pętle porównujące s[b] i s[b+1] oraz s[h2] i s[h2+1] używają nieprawidłowego warunku AND i zatrzymują się, gdy którykolwiek znak przypomina część terminatora CRLF. To skraca nagłówki, nazwy plików lub granice i może spowodować, że aplikacja zaakceptuje niebezpieczną zawartość po zobaczeniu mylącej wartości Content-Type. Problem naprawiono w wersji 7.22.
- CVE-2026-73255Średnie
Mongoose to wbudowany serwer WWW i biblioteka sieciowa. Przed wersją 7.22 atakujący, który może kontrolować plik z włączonym SSI, może umieścić sekwencje traversal katalogów w dyrektywie #include file lub #include virtual. Funkcja mg_ssi() w src/ssi.c łączy argument dyrektywy ze ścieżką systemu plików bez wywołania mg_path_is_sane(), co pozwala wdrożeniu z MG_ENABLE_SSI i skonfigurowanym ssi_pattern na ujawnienie plików czytelnych dla procesu Mongoose. Problem naprawiono w wersji 7.22.
- CVE-2026-73254Średnie
Mongoose to wbudowany serwer WWW i biblioteka sieciowa. Przed wersją 7.22 atakujący, który może utworzyć plik z ładunkiem HTML w nazwie, może wywołać trwały cross-site scripting, gdy użytkownik przegląda katalog serwowany z MG_ENABLE_DIRLIST. Funkcja printdirentry() wywoływana przez listdir() w src/http.c koduje URL w href, ale wstawia surową nazwę pliku do tekstu linku HTML. Przeglądarka wykonuje wstrzyknięty kod w kontekście Mongoose, co może ujawnić dane sesji lub umożliwić działania jako ofiara. Problem naprawiono w wersji 7.22.
- CVE-2026-73562Średnie
Mongoose przed wersjami 6.13.10, 7.8.10, 8.24.1 i 9.7.2 ma podatność na zanieczyszczenie prototypu przez przekazanie kontrolowanego przez użytkownika update z kropkowaną ścieżką __proto__.x w $set. Proces castowania może ustawić właściwości na Object.prototype, co wpływa na integralność i dostępność aplikacji.
- CVE-2026-42334Wysokie
Mongoose, narzędzie do modelowania obiektów MongoDB, przed wersjami 6.13.9, 7.8.9, 8.22.1 i 9.1.6 miało podatność, która pozwalała na obejście mechanizmu sanitizacji zapytań sanitizeFilter za pomocą operatora $nor. Operator ten nie był odpowiednio sanitizowany, co umożliwiało wstrzykiwanie złośliwych operatorów.
- CVE-2026-6986Niskie
W Cesanta Mongoose do wersji 7.20 wykryto podatność w funkcji mg_aes_gcm_decrypt pliku /src/tls_aes128.c, w komponencie GCM Authentication Tag Handler. Manipulacja prowadzi do nieprawidłowej weryfikacji podpisu kryptograficznego. Atak można przeprowadzić zdalnie, ale charakteryzuje się wysoką złożonością i trudną wykorzystywalnością; exploit został publicznie ujawniony.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

