CVE-2026-121959
ŚrednieCVSS 6.5Streszczenie
FreeRDP w wersjach przed 3.32.2 zawiera podatność na nieskończoną pętlę w funkcji websocket_context_read, która nie obsługuje wyniku zerowego BIO przy oczekującym ładunku. Złośliwy serwer RD Gateway może wysłać obcięty frame WebSocket, a następnie TLS close_notify, powodując zapętlenie wątku klienta i zużycie CPU aż do jego zabicia.
Ocena ryzyka
Atakujący może wywołać atak typu denial of service na kliencie FreeRDP, powodując wyczerpanie zasobów CPU i niedostępność aplikacji. Wymaga to połączenia z złośliwym serwerem RD Gateway.
Rekomendacja
Zaktualizuj FreeRDP do wersji 3.32.2 lub nowszej, która naprawia tę podatność. Rozważ ograniczenie zaufania do serwerów RD Gateway w środowisku.
Inne podatności w FreeRDP
Zobacz wszystkie- CVE-2026-121964Wysokie
FreeRDP w wersjach przed 3.32.2 zawiera przepełnienie bufora na stercie w kliencie RPC RD Gateway, gdzie funkcja rpc_client_recv_fragment zapisuje fragmenty BIND_ACK i ALTER_CONTEXT_RESP do trwałego strumienia PDU, sprawdzając tylko całkowitą pojemność, a nie pozostałą pojemność od bieżącej pozycji strumienia. Złośliwy lub przejęty RD Gateway może wysłać spreparowane fragmenty RPC z zmanipulowanymi wartościami alloc_hint i frag_length, aby nadpisać pamięć sterty klienta danymi kontrolowanymi przez atakującego, powodując awarię lub potencjalne wykonanie dowolnego kodu.
- CVE-2026-121963Średnie
FreeRDP przed wersją 3.32.2 zawiera podatność use-after-free w asynchronicznym dynamicznym kanale rdpsnd, która pozwala złośliwym serwerom RDP wywołać dostęp do zwolnionego callbacku poprzez zamknięcie kanału z zakolejkowanymi PDU audio. Atakujący mogą wysłać PDU treningowy, a następnie zamknąć kanał, tak aby wątek odtwarzania odczytał zwolniony callback w rdpsnd_virtual_channel_write, powodując awarię klienta.
- CVE-2026-121962Wysokie
FreeRDP w wersjach przed 3.32.2 zawiera przepełnienie bufora na stercie w funkcji transport_default_read_pdu podczas obsługi częściowych odczytów Early User Authorization w ramach PROTOCOL_HYBRID_EX CredSSP. Złośliwy serwer RDP może podzielić czterobajtowy wynik EUA na krótkie odczyty, które przesuwają wskaźnik strumienia poza alokację 16 KiB, powodując zapis poza granicami i odmowę usługi po stronie klienta.
- CVE-2026-121961Średnie
FreeRDP przed wersją 3.32.2 zawiera podatność use-after-free w trackerze DRDYNVC freerdp-proxy podczas przechwytywania kanału drdynvc. Złośliwy serwer docelowy może wielokrotnie wysyłać CREATE_REQUEST_PDU dla aktywnego identyfikatora kanału, ścigając się z obsługą danych front DATA w celu zwolnienia pożyczonego kontekstu i spowodowania awarii procesu proxy.
- CVE-2026-121960Wysokie
FreeRDP w wersjach przed 3.32.2 zawiera podatność odmowy usługi w serwerze shadow z włączonym NLA, gdy żądanie CredSSP TSRequest nie zawiera negoTokens. Nieuwierzytelniony atakujący może wysłać spreparowane siedmiobajtowe żądanie TSRequest zawierające tylko pole wersji, aby wywołać krytyczny WINPR_ASSERT i przerwać proces serwera.
- CVE-2026-121958Wysokie
FreeRDP do wersji 3.32.1 ma podatność heap out-of-bounds write w kliencie RDPGFX, ponieważ callback delete_surface obcina klucze haszy powierzchni do 16 bitów, pozostawiając tablicę powierzchni w niespójnym stanie, przez co HashTable_GetKeys zapisuje poza zaalokowaną tablicą kluczy. Złośliwy lub działający jako man-in-the-middle serwer RDP może to wykorzystać, tworząc surfaceId 0xFFFF, zamykając kanał RDPGFX, wysyłając powtarzane PDU DELETESURFACE, a następnie ENDFRAME lub RESETGRAPHICS.
- CVE-2026-121957Wysokie
FreeRDP w wersjach przed 3.32.2 zawiera podatność use-after-free, która pozwala złośliwym serwerom RDP uszkodzić pamięć klienta poprzez wyścig między obsługą ResetGraphics w RDPGFX a dekoderem bitmap planarnych. Atakujący może wysłać ResetGraphics jednocześnie wysyłając skompresowane bitmapy 32 bpp lub większe, aby wywołać use-after-free na stercie lub odczyt/zapis poza granicami współdzielonych buforów planarnych.
- CVE-2026-121956Wysokie
FreeRDP przed wersją 3.32.2 zawiera błąd podwójnego zwolnienia w funkcji WinPR Kerberos SSPI retrieveSomeTgt, która przypisuje domyślny realm krb5 do głównego podmiotu z pustym realmem bez przejęcia własności. Nieuwierzytelnieni zdalni klienci mogą wysłać spreparowane żądanie NLA/CredSSP u2u TGT z znakiem '@' w nazwie serwera, co uszkadza stertę i powoduje awarię procesu serwera.
- CVE-2026-121955Wysokie
FreeRDP przed wersją 3.32.2 zawiera podatność use-after-free w funkcji Emulate_SCardReleaseContext, która zwalnia emulowany SCardContext przed anulowaniem i dołączeniem wątku roboczego. Złośliwy serwer może wysłać IRP smartcard ESTABLISHCONTEXT, GETSTATUSCHANGE z długim limitem czasu, a następnie RELEASECONTEXT, aby uszkodzić pamięć sterty lub spowodować awarię klientów korzystających z emulacji smartcard.
- CVE-2026-121954Średnie
FreeRDP w wersjach przed 3.32.2 ma podatność na zapis poza granicami sterty w kodeku planar, ponieważ freerdp_bitmap_planar_context_reset zatwierdza nowe wymiary przed pomyślną realokacją bufora, a nieudany ResetGraphics jest tylko logowany. Złośliwy serwer RDP może wysłać zbyt duży PDU ResetGraphics, a następnie polecenie GFX PLANAR, aby uszkodzić pamięć sterty klienta i spowodować awarię klienta.
Oryginalny opis (angielski, źródło NVD)
FreeRDP before 3.32.2 contains an infinite loop vulnerability in websocket_context_read that fails to handle a zero BIO result with payload outstanding. A malicious RD Gateway can send a truncated WebSocket frame followed by a TLS close_notify, causing a client thread to spin and consume CPU until killed.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

