CVE-2026-73254
ŚrednieCVSS 5.4Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 9 - wyżej niż 9% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Atak może prowadzić do kradzieży danych sesji lub wykonania nieautoryzowanych działań w imieniu ofiary, co narusza poufność i integralność aplikacji.
Rekomendacja
Zaleca się aktualizację Mongoose do wersji 7.22 lub nowszej oraz unikanie włączania MG_ENABLE_DIRLIST w środowiskach produkcyjnych, jeśli to możliwe.
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-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-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.
Oryginalny opis (angielski, źródło NVD)
Mongoose is an embedded web server and network library. Prior to 7.22, an attacker who can create a file with an HTML payload in its name can trigger stored cross-site scripting when a user browses a directory served with MG_ENABLE_DIRLIST. The printdirentry() path called by listdir() in src/http.c URL-encodes the href but inserts the raw filesystem filename into the HTML link text. The browser executes the injected markup in the Mongoose origin, which can expose session data or permit actions as the victim. This issue is fixed in version 7.22.

