CVE-2026-15714
ŚrednieCVSS 6.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 31 - wyżej niż 31% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Ryzyko dla organizacji obejmuje możliwość przerwania działania usług korzystających z libsoup (np. serwerów HTTP) poprzez wysłanie spreparowanej odpowiedzi HTTP. Może to prowadzić do tymczasowej niedostępności aplikacji lub wycieku wrażliwych danych z pamięci.
Rekomendacja
Zaleca się natychmiastową aktualizację biblioteki libsoup do wersji, w której załatano tę podatność. Należy również rozważyć zastosowanie tymczasowych reguł WAF blokujących podejrzane nagłówki multipart.
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)
An out-of-bounds read vulnerability was found in libsoup's multipart processing subsystem. The flaw exists in the soup_multipart_input_stream_read_headers() function inside soup-multipart-input-stream.c, which does not adequately restrict or validate the size of incoming multipart boundary strings. When processing a crafted HTTP response containing a malformed or oversized boundary parameter, the internal stream reader reads past the allocated buffer bounds. A remote, unauthenticated attacker can exploit this behavior to cause a service denial (DoS) through application failure or potentially read fragments of unauthorized memory metadata.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

