CVE-2026-73324
ŚrednieCVSS 6.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 26 - wyżej niż 26% wszystkich znanych CVE
Streszczenie
VLC media player kopiuje linię odpowiedzi RTSP do stałego bufora bez gwarancji zakończenia, a następnie traktuje ten bufor jako ciąg C. Funkcja RtspReadLine w modules/access/rtsp/access.c wywołuje strncpy z pełną długością bufora, co nie zapisuje terminatora, gdy źródło jest co najmniej tak długie jak cel, a rtsp_get w modules/access/rtsp/rtsp.c przydziela bufor o rozmiarze BUF_SIZE i przekazuje go do strdup. Gdy serwer zwróci linię o długości 4096 bajtów lub więcej, strdup mierzy jej długość poza przydziałem i kopiuje sąsiednie bajty sterty aż do przypadkowego zera. Ponieważ dotknięta linia to nagłówek Session, ujawnione bajty są zachowywane jako identyfikator sesji i wysyłane z powrotem do serwera przy każdym kolejnym żądaniu, więc operator wrogiego serwera odczytuje pamięć sterty klienta. Atakujący kontroluje długość linii i tym samym zasięg odczytu. Pojedynczy wpis playlisty wskazujący na adres realrtp jest wystarczający. Moduł jest opcją kompilacji, wyłączoną w niektórych pakietach dystrybucyjnych, a włączoną w oficjalnych kompilacjach VideoLAN.
Ocena ryzyka
Ryzyko polega na wycieku pamięci sterty klienta do złośliwego serwera, co może ujawnić poufne dane, takie jak tokeny sesji, hasła lub inne wrażliwe informacje przechowywane w pamięci.
Rekomendacja
Zaleca się unikanie otwierania niezaufanych playlist zawierających adresy realrtp oraz aktualizację VLC do wersji, w której moduł RTSP jest wyłączony lub poprawiony, jeśli dostępna.
Inne podatności w VLC media player
Zobacz wszystkie- CVE-2026-56711Wysokie
VLC media player oblicza rozmiar bufora obrazu w arytmetyce 32-bitowej i alokuje na podstawie zawiniętego wyniku. W AllocatePicture w src/misc/picture.c suma i_bytes += p->i_pitch * p->i_lines jest licznona na 32 bitach i zawija się przed rozszerzeniem do size_t. Sprawdzenie przepełnienia dzieli w 64 bitach i nie ogranicza iloczynu, a porównanie z PICTURE_SW_SIZE_MAX bada już zawiniętą wartość, więc obie osłony przechodzą. aligned_alloc rezerwuje mały zawinięty rozmiar, podczas gdy dekoder zapisuje linie o rozmiarze wynikającym z oryginalnych wymiarów. Spreparowany plik PNG z dużymi wymiarami w IHDR osiąga tę ścieżkę przez demuxer obrazów, którego jedynym ograniczeniem jest liczba bajtów pliku wejściowego, a dekoder w modules/codec/png.c zapisuje poza alokacją z treścią i długością kontrolowaną przez atakującego. Wystarczy otworzyć plik bezpośrednio lub przez playlistę, bez niestandardowych ustawień.
- CVE-2020-26664Wysokie
W VLC media player 3.0.11 odkryto podatność w funkcji EbmlTypeDispatcher::send, która umożliwia atakującym wywołanie przepełnienia bufora sterty poprzez specjalnie spreparowany plik .mkv.
Oryginalny opis (angielski, źródło NVD)
VLC media player copies an RTSP response line into a fixed buffer without guaranteeing termination and then treats that buffer as a C string. RtspReadLine in modules/access/rtsp/access.c calls strncpy with the full buffer length, which writes no terminator when the source line is at least as long as the destination, and rtsp_get in modules/access/rtsp/rtsp.c allocates that buffer as BUF_SIZE bytes and passes it to strdup. When a server returns a line of 4096 bytes or more, strdup measures its length past the end of the allocation and copies adjacent heap bytes until an incidental zero byte. Because the affected line is the Session header, the disclosed bytes are retained as the session identifier and sent back to the server on every subsequent request, so the operator of a hostile server reads heap memory from the client rather than inferring it. The attacker controls the line length and therefore how far the read runs. A single playlist entry naming a realrtsp URL is sufficient. The module is a build-time option, disabled in some distribution packages and enabled in the official VideoLAN builds.

