CVE-2026-63626
WysokieCVSS 8.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 14 - wyżej niż 14% wszystkich znanych CVE
Streszczenie
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().
Ocena ryzyka
Nieuwierzytelniony sąsiadujący atakujący może wywołać uszkodzenie pamięci, wyciek danych z sąsiedniej sterty lub zawieszenie pętli zdarzeń, co prowadzi do odmowy usługi lub wycieku informacji.
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-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-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, ppp_handle_ipv6cp() in src/l2_ppp.c trusts the 16-bit IPv6CP len field without checking it against the received payload size. On a PPP or PPPoE link using MG_ENABLE_TCPIP and MG_ENABLE_IPV6, an unauthenticated adjacent peer can complete the required LCP exchange and send a short Configure-Request with an oversized length, causing ppp_tx_frame() to read beyond recv_queue.buf and write beyond tx.buf. The same length misuse can also expose adjacent heap bytes in a reply or hang the event loop through find_opt(). This issue is fixed in version 7.23.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

