CVE-2026-73252
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 30 - wyżej niż 30% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Nieuwierzytelniony zdalny atakujący może wywołać odmowę usługi poprzez odczyt poza zakresem sterty podczas uzgadniania TLS, co może prowadzić do niedostępności usługi.
Rekomendacja
Zaktualizuj Mongoose do wersji 7.23 lub nowszej.
Inne podatności w Mongoose
Zobacz wszystkie- 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-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-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.
Oryginalny opis (angielski, źródło NVD)
Mongoose is an embedded web server and network library. Prior to 7.23, the built-in TLS stack selected by MG_TLS_BUILTIN in src/tls_builtin.c accepts a TLS 1.3 record whose decrypted size is exactly the 16-byte authentication tag with no plaintext or ContentType byte. In mg_tls_recv_record(), the msgsz length check permits that record and the recv_len calculation underflows to SIZE_MAX, so a later handshake step treats stale buffer contents as a trusted message with an effectively unbounded length. An unauthenticated malicious TLS peer can trigger a heap out-of-bounds read before certificate or Finished validation, causing a remote denial of service. This issue is fixed in version 7.23.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

