CVE-2026-15713
ŚrednieCVSS 5.9Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 27 - wyżej niż 27% wszystkich znanych CVE
Streszczenie
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).
Ocena ryzyka
Ryzyko polega na możliwości przeprowadzenia ataku DoS przez zdalnego atakującego bez uwierzytelnienia, co może doprowadzić do wyczerpania pamięci systemowej i awarii aplikacji korzystającej z libsoup, zakłócając jej działanie.
Rekomendacja
Należy niezwłocznie zaktualizować bibliotekę libsoup do wersji zawierającej poprawkę usuwającą wyciek pamięci w implementacji HTTP/2. Jeśli aktualizacja nie jest dostępna, rozważ tymczasowe wyłączenie obsługi HTTP/2 w aplikacjach korzystających z libsoup.
Inne podatności w libsoup
Zobacz wszystkie- CVE-2026-102560Wysokie
W bibliotece libsoup, gdy rozszerzenie WebSocket permessage-deflate kompresuje bardzo dużą wiadomość wychodzącą, obcięte obliczenia rozmiaru używane do wzrostu GByteArray mogą się zawinąć, powodując, że zlib zapisuje poza przydzielony bufor, co prowadzi do przepełnienia sterty.
- CVE-2026-102556Wysokie
W bibliotece libsoup podczas obsługi przychodzącej ramki WebSocket Pong, SoupWebsocketConnection emitował sygnał ::pong ze wskaźnikiem GByteArray, mimo że sygnał jest zadeklarowany do przekazywania GBytes. Aplikacje podłączające handler zgodny z udokumentowanym API GBytes mogą wywołać uszkodzenie sterty lub awarię po otrzymaniu spreparowanego Ponga.
- 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-103399Średnie
W SoupServer (libsoup) wykryto lukę. Gdy klient HTTP/1.x wysyła żądanie z nagłówkiem Expect: 100-continue i ciałem żądania, a SoupServer zwraca wczesną finalną odpowiedź (nie-1xx) przed odczytaniem ciała, serwer nie opróżnia zadeklarowanych bajtów ciała ani nie zamyka połączenia. W połączeniu keep-alive pozostałe bajty są interpretowane jako kolejne żądanie HTTP.
- CVE-2026-102559Wysokie
W bibliotece libsoup, podczas konstruowania maskowanej ramki WebSocket klienta dla bardzo dużego ładunku wychodzącego, wartości rozmiaru przekazywane do funkcji alokacji GByteArray mogą zostać obcięte, podczas gdy procedura maskowania nadal używa pełnej długości, co powoduje przepełnienie bufora sterty.
- CVE-2026-102558Wysokie
W bibliotece libsoup, gdy maksymalny rozmiar przychodzącego ładunku jest nieograniczony (0), SoupWebsocketConnection może zwiększać swój przychodzący GByteArray na podstawie długości ramki kontrolowanej przez atakującego, aż długość się zawinie, co powoduje przepełnienie bufora sterty podczas odczytu danych ramki.
- CVE-2026-102555Wysokie
W bibliotece libsoup funkcja soup_uri_decode_data_uri() nieprawidłowo traktowała ładunki data-URI base64 jako ciągi zakończone NUL podczas wywoływania g_base64_decode_inplace(). Jeśli ładunek po zdekodowaniu procentowo zawierał wbudowane bajty NUL, zdekodowana długość mogła pozostać niezainicjalizowana i być użyta jako rozmiar zwracanego GBytes. Może to prowadzić do odczytu poza zakresem lub awarii aplikacji podczas przetwarzania spreparowanego data URI.
- CVE-2026-102557Wysokie
W bibliotece libsoup podczas składania fragmentowanych wiadomości WebSocket do GByteArray nie ograniczano odpowiednio całkowitego rozmiaru wiadomości w stosunku do limitów bazowego typu bufora. Zdalny peer mógł wysyłać fragmenty powodujące obcięcie rozmiaru, podczas gdy implementacja nadal używała pełnej długości, co prowadziło do uszkodzenia sterty lub awarii.
- CVE-2026-85534Średnie
W bibliotece libsoup wykryto podatność związaną z brakiem kontroli granic podczas przesyłania treści żądania HTTP/2 z nieodpytywalnego strumienia wejściowego. Złośliwy serwer HTTP/2 może zmniejszyć rozmiar okna przepływu (SETTINGS_INITIAL_WINDOW_SIZE) podczas trwającego buforowanego odczytu, co prowadzi do skopiowania pełnego bufora do mniejszego wywołania zwrotnego DATA bez kontroli granic, co może przerwać działanie procesu lub spowodować niepowodzenie sesji HTTP/2.
- CVE-2026-85197Wysokie
W bibliotece libsoup wykryto podatność use-after-free w implementacji klienta HTTP/2. Złośliwy serwer HTTP/2 lub atakujący typu man-in-the-middle może wykorzystać tę podatność, gdy aplikacja GNOME wysyła plik przez HTTP/2, a serwer wysyła ramkę GOAWAY podczas asynchronicznego odczytu treści pliku. Może to prowadzić do uszkodzenia pamięci, wycieku informacji lub wykonania dowolnego kodu.
Oryginalny opis (angielski, źródło NVD)
A vulnerability was found in libsoup's HTTP/2 protocol implementation. The library fails to correctly release memory context blocks under specific stream termination conditions, such as when an HTTP/2 connection encounters window exhaustion or explicit stream resets. A remote, unauthenticated attacker acting as a malicious network peer can trick the connection engine into allocating stream states that are subsequently leaked during cleanup. Over a sustained period, this flaw allows the remote attacker to consume the system's heap allocations incrementally, triggering a denial of service (DoS) through an ultimate Out-of-Memory (OOM) application crash.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

