CVE-2026-15712
ŚrednieCVSS 5.9Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 39 - wyżej niż 39% wszystkich znanych CVE
Streszczenie
W bibliotece libsoup w wersjach 3.0 do 3.7.0 wykryto podatność na odczyt poza granicami bufora sterty w mechanizmie obsługi ramek GOAWAY protokołu HTTP/2. Brak odpowiedniej walidacji długości danych debugowania powoduje, że zdalny, nieuwierzytelniony atakujący może wysłać spreparowaną ramkę, co prowadzi do awarii aplikacji (DoS) lub potencjalnego wycieku fragmentów pamięci.
Ocena ryzyka
Atakujący może zdalnie spowodować awarię aplikacji korzystającej z libsoup, co prowadzi do przerwania usługi (DoS). W niektórych przypadkach może dojść do ujawnienia wrażliwych danych z pamięci procesu.
Rekomendacja
Należy niezwłocznie zaktualizować bibliotekę libsoup do wersji 3.7.1 lub nowszej, która zawiera poprawkę usuwającą podatność. Jeśli aktualizacja nie jest możliwa, należy rozważyć tymczasowe wyłączenie obsługi HTTP/2 w aplikacjach korzystających z libsoup.
Inne podatności w libsoup
Zobacz wszystkie- CVE-2025-32911Krytyczne
W bibliotece libsoup odkryto podatność typu use-after-free w funkcji soup_message_headers_get_content_disposition(). Umożliwia ona złośliwemu klientowi HTTP wywołanie uszkodzenia pamięci w serwerze libsoup.
- CVE-2026-77014Średnie
W libsoup, w przetwarzaniu nagłówka HTTP Range w SoupServer, funkcja sort_ranges() obcina wynik odejmowania 64-bitowego do 32-bitowej liczby całkowitej, co powoduje błędne sortowanie zakresów dla plików większych niż ~2 GB. Prowadzi to do pomijania żądanych zakresów w odpowiedziach HTTP 206 Partial Content.
- CVE-2026-66339Średnie
W bibliotece libsoup po ustanowieniu tunelu CONNECT przez proxy HTTP, nagłówek Proxy-Authorization jest nieprawidłowo dołączany do kolejnych żądań HTTPS wysyłanych przez ten tunel do serwera docelowego. Pozwala to serwerowi docelowemu na przechwycenie danych uwierzytelniających proxy.
- CVE-2026-66338Średnie
W bibliotece libsoup parser kodowania transferu fragmentarycznego (chunked transfer encoding) używa permisywnej funkcji parsowania rozmiaru fragmentu, która akceptuje dane niezgodne z RFC 9112, w tym początkowe białe znaki, prefiksy plusa i końcowe nieprawidłowe znaki. Gdy libsoup działa za rygorystycznym proxy, ta różnica w parsowaniu może być wykorzystana do przemycania żądań HTTP.
- CVE-2026-66337Średnie
W bibliotece libsoup niedopełnienie liczby całkowitej bez znaku w funkcji soup_filter_input_stream_read_until() powoduje odczyt poza zakresem bufora sterty podczas parsowania wieloczęściowych odpowiedzi HTTP. Złośliwy serwer HTTP może wysłać spreparowaną odpowiedź, powodując awarię aplikacji klienckiej lub ujawnienie poufnych danych z pamięci sterty.
- CVE-2026-12548Średnie
W bibliotece libsoup odkryto wadę odczytu poza zakresem sterty. Podczas parsowania wieloczęściowych wiadomości HTTP, niezgodność typów całkowitych między wywołującym a funkcją soup_headers_parse() może spowodować nieprawidłowe obcięcie parametru długości, prowadząc do odczytu poza zakresem bufora sterty. Zdalny atakujący może wykorzystać tę wadę do spowodowania awarii aplikacji używającej libsoup lub potencjalnie ujawnić zawartość pamięci sterty.
- CVE-2026-15714Średnie
W bibliotece libsoup odkryto podatność polegającą na odczycie poza dozwolonym zakresem pamięci w mechanizmie przetwarzania multipart. Funkcja soup_multipart_input_stream_read_headers() nie ogranicza poprawnie rozmiaru ciągów granicznych (boundary), co może prowadzić do odczytu poza buforem. Zdalny, nieuwierzytelniony atakujący może wykorzystać tę lukę do spowodowania odmowy usługi (DoS) lub potencjalnie odczytu fragmentów pamięci.
- CVE-2026-15713Średnie
W bibliotece libsoup w implementacji protokołu HTTP/2 wykryto podatność polegającą na nieprawidłowym zwalnianiu bloków pamięci w określonych warunkach zakończenia strumienia, takich jak wyczerpanie okna lub jawne resetowanie strumienia. Zdalny, nieuwierzytelniony atakujący działający jako złośliwy peer sieciowy może wymusić na silniku połączeń alokację stanów strumienia, które następnie nie są zwalniane podczas czyszczenia. W dłuższym okresie prowadzi to do stopniowego wyczerpywania sterty i awarii aplikacji z powodu braku pamięci (OOM).
- CVE-2026-15711Wysokie
W bibliotece libsoup wykryto podatność w implementacji parsowania ramek WebSocket. Biblioteka nie sprawdza poprawności reguł długości określonych w RFC 6455 §5.5, które wymagają, aby ramki kontrolne (np. PING, PONG, CLOSE) miały ładunek o długości 125 bajtów lub mniejszej. Zdalny, nieuwierzytelniony atakujący może wysłać niezgodną, zbyt dużą ramkę kontrolną, co prowadzi do awarii wewnętrznego przetwarzania i odmowy usługi (DoS) dla aplikacji korzystających z WebSocketów w libsoup.
- CVE-2026-15709Wysokie
W bibliotece libsoup znaleziono podatność w implementacji WebSocket z rozszerzeniem permessage-deflate. Pętla dekompresji (inflate()) przetwarza dane w fragmentach bez ograniczenia górnego rozmiaru bufora wyjściowego, co pozwala na niekontrolowaną alokację pamięci. Zdalny, nieuwierzytelniony atakujący może wysłać mały, silnie skompresowany ładunek (bomba dekompresyjna), powodując awarię z powodu braku pamięci (OOM) i odmowę usługi (DoS).
Oryginalny opis (angielski, źródło NVD)
A heap buffer over-read vulnerability was discovered in libsoup's (versions: libsoup 3.0 to 3.7.0) HTTP/2 connection tracking framework. When the library processes an HTTP/2 GOAWAY frame, it improperly handles the "Additional Debug Data" payload by assuming the data stream is a safely NUL-terminated C-string. Because the parser lacks strict length-boundary verification before reading this data, a remote, unauthenticated attacker can intentionally send a malformed GOAWAY frame missing the appropriate null delimiter. This causes the library to read past the end of the allocated buffer, triggering an application crash that results in a denial of service (DoS), or potentially exposing fragments of memory contents.

