CVE-2026-102556
WysokieCVSS 8.6Streszczenie
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.
Ocena ryzyka
Ryzyko obejmuje awarię aplikacji lub uszkodzenie pamięci, co może prowadzić do nieprzewidywalnego zachowania lub potencjalnego zdalnego wykonania kodu.
Rekomendacja
Zaktualizuj libsoup do wersji z poprawką. Sprawdź, czy Twoje aplikacje używają sygnału ::pong i dostosuj je do oczekiwanego typu GBytes.
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-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.
- CVE-2026-77680Średnie
W bibliotece libsoup występuje podatność na atak typu „odmowa usługi” (CPU exhaustion) związana z przetwarzaniem nagłówka HTTP Range. Mimo poprawki CVE-2025-32907, scalanie wielu identycznych zakresów w pętli wykonuje operacje O(N²), co przy maksymalnym rozmiarze nagłówka (~100 KiB) pozwala na zablokowanie pętli zdarzeń serwera na około 90 ms na żądanie. Podatność jest osiągalna po stronie serwera bez uwierzytelniania.
Oryginalny opis (angielski, źródło NVD)
A flaw was found in libsoup. When handling an incoming WebSocket Pong frame, SoupWebsocketConnection emitted the ::pong signal with a GByteArray pointer even though the signal is declared to pass a GBytes. Applications connecting a handler that follows the documented GBytes API can trigger heap corruption or a crash upon receiving a crafted Pong.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

