CVE-2026-91954
ŚrednieCVSS 6.5Streszczenie
FreeRDP przed wersją 3.31.0 zawiera podatność dereferencji wskaźnika null w funkcji gdi_surface_bits podczas przetwarzania poleceń Surface Bits z identyfikatorem kodeka NSCodec. Złośliwy serwer RDP może wywołać awarię klienta FreeRDP, wysyłając spreparowane polecenie Surface Bits deklarujące użycie NSCodec, nawet gdy kodek jest wyłączony.
Ocena ryzyka
Złośliwy serwer RDP może zdalnie wywołać awarię klienta FreeRDP, powodując przerwanie pracy użytkownika. Może to być wykorzystane do zakłócenia działania lub jako element ataku DoS.
Rekomendacja
Zaktualizuj FreeRDP do wersji 3.31.0 lub nowszej. Ogranicz połączenia RDP do zaufanych serwerów.
Inne podatności w FreeRDP
Zobacz wszystkie- CVE-2026-91964Wysokie
FreeRDP przed wersją 3.31.0 zawiera podatność na przepełnienie bufora na stercie w nego_send_negotiation_request podczas przetwarzania wiadomości Server Redirection PDU z kontrolowanym przez atakującego polem LoadBalanceInfo. Złośliwy serwer RDP może wywołać przepełnienie, wysyłając pole o dowolnej długości, które jest zapisywane do stałego bufora 512-bajtowego bez walidacji, co powoduje awarie klienta lub potencjalne wykonanie kodu w połączeniu z ujawnieniem pamięci.
- CVE-2026-91963Średnie
FreeRDP w wersjach przed 3.31.0 zawiera podatność ujawnienia niezainicjalizowanej pamięci sterty w kanale przekierowania USB urbdrc. Złośliwy serwer RDP może wywołać nieudane transfery USB, aby odczytać niezainicjalizowaną pamięć sterty z klienta, co umożliwia obejście ASLR i zdalne wykonanie kodu w połączeniu z podatnościami typu memory corruption.
- CVE-2026-91962Średnie
FreeRDP przed wersją 3.31.0 zawiera przepełnienie liczb całkowitych w backendach audin Apple podczas przetwarzania wartości FramesPerPacket z komunikatów MSG_SNDIN_OPEN. Atakujący mogą dostarczyć spreparowane wartości FramesPerPacket, które powodują zawinięcie obliczeń rozmiaru AudioQueueAllocateBuffer, skutkując zbyt małą alokacją bufora i potencjalnym dostępem poza granice.
- CVE-2026-91961Średnie
FreeRDP przed wersją 3.31.0 zawiera podatność typu denial-of-service w ścieżce żądań kontrolnych URBDRC, która nie waliduje OutputBufferSize przed przekazaniem do backendu libusb. Złośliwy serwer RDP może wysłać żądanie kontrolne z OutputBufferSize ustawionym na 65536, wywołując osiągalną asercję, która kończy proces klienta.
- CVE-2026-91960Średnie
FreeRDP w wersjach przed 3.31.0 zawiera przepełnienie liczb całkowitych w funkcji Stream_EnsureRemainingCapacity biblioteki WinPR, umożliwiające zdalnym atakującym wywołanie denial-of-service. Złośliwy peer RD Gateway może wysłać ramkę WebSocket Ping ze spreparowaną 64-bitową rozszerzoną długością ładunku, wywołując zawinięcie liczb całkowitych i podwójne zwolnienie pamięci, które powoduje awarię klienta FreeRDP podczas połączenia.
- CVE-2026-91959Średnie
FreeRDP przed wersją 3.31.0 zawiera podatność typu buffer over-read w funkcji rts_read_result w parserze transportu bramy RPC. Atakujący mogą wysłać złośliwy PDU BIND_ACK z obciętym wpisem wyniku, aby wywołać odczyt poza granice bufora powodujący przerwanie procesu.
- CVE-2026-91958Średnie
FreeRDP w wersjach przed 3.31.0 nie waliduje wartości tablicy MonitorIds podczas parsowania plików połączeń RDP, umożliwiając nieograniczone indeksowanie tablicy w xf_detect_monitors. Atakujący mogą spreparować złośliwy plik RDP z wartością selectedmonitors poza zakresem, aby wywołać odczyt i zapis poza granice sterty podczas otwierania w xfreerdp.
- CVE-2026-91957Niskie
FreeRDP przed wersją 3.31.0 zawiera podatność use-after-free w obsłudze urządzenia smartcard RDPDR, gdy utworzenie wątku roboczego nie powiedzie się po rejestracji urządzenia. Atakujący może wywołać błąd tworzenia wątku podczas konfiguracji kanału, powodując zwolnienie wskaźnika urządzenia, gdy devman nadal go używa, co prowadzi do awarii lub wykonania kodu.
- CVE-2026-91956Średnie
FreeRDP przed wersją 3.31.0 zawiera podatność typu out-of-bounds read w funkcji func_get_ep_desc kanału URBDRC, która indeksuje tablice interfejsów według pozycji zamiast pola protokołu InterfaceNumber. Złośliwy serwer RDP może wysłać spreparowany komunikat SELECT_CONFIGURATION z permutowanymi wartościami InterfaceNumber, aby odczytać pamięć poza przydzieloną stertą i spowodować awarię klienta.
- CVE-2026-91955Wysokie
FreeRDP przed wersją 3.31.0 nie weryfikuje wartości DesktopWidth i DesktopHeight dostarczanych przez klienta podczas negocjacji GCC, co pozwala zdalnym atakującym na doprowadzenie do awarii serwera. Atakujący mogą wysyłać spreparowane pakiety RDP z zerowymi lub zbyt dużymi wymiarami, aby wywołać dzielenie przez zero lub błędy asercji w obliczeniach możliwości aktualizacji wielofragmentowych, co kończy proces serwera.
Oryginalny opis (angielski, źródło NVD)
FreeRDP before 3.31.0 contains a null pointer dereference vulnerability in gdi_surface_bits when processing Surface Bits commands with NSCodec codec ID. A malicious RDP server can crash a FreeRDP client by sending a crafted Surface Bits command claiming to use NSCodec, even when the codec is disabled.

