Podatności FreeRDP
181 znanych podatności CVE w FreeRDP, przetłumaczonych i ocenionych.
- CVE-2026-23732Wysokie
FreeRDP przed wersją 3.21.0 zawiera podatność w parsowaniu FastGlyph, gdzie długość danych nie jest weryfikowana względem minimalnego rozmiaru wynikającego z wymiarów cx/cy. Złośliwy serwer może wywołać przepełnienie bufora po stronie klienta, prowadząc do awarii (DoS).
- CVE-2026-22856Wysokie
FreeRDP to darmowa implementacja protokołu Remote Desktop Protocol. Przed wersją 3.20.1, wyścig w śledzeniu wątków IRP kanału szeregowego pozwala na użycie po zwolnieniu (use-after-free) w stercie, gdy jeden wątek usuwa wpis z serial->IrpThreads, a inny go czyta. Luka została naprawiona w wersji 3.20.1.
- CVE-2013-4119Wysokie
FreeRDP w wersjach przed 1.1.0-beta+2013071101 pozwala zdalnym atakującym na spowodowanie odmowy usługi poprzez rozłączenie przed zakończeniem procesu uwierzytelniania, co prowadzi do dereferencji wskaźnika NULL i awarii aplikacji.
- CVE-2013-4118Wysokie
FreeRDP w wersjach przed 1.1.0-beta1 pozwala zdalnym atakującym na spowodowanie odmowy usługi poprzez dereferencję wskaźnika NULL, co prowadzi do awarii aplikacji.
- CVE-2014-0250Wysokie
Wielokrotne przepełnienia całkowite w pliku client/X11/xf_graphics.c w FreeRDP mogą pozwolić zdalnym atakującym na wywołanie nieokreślonego wpływu poprzez szerokość i wysokość w funkcjach xf_Pointer_New lub xf_Bitmap_Decompress, co prowadzi do niewłaściwej alokacji pamięci.
- CVE-2026-91949Krytyczne
Serwer FreeRDP w wersjach przed 3.31.0 zawiera podatność obejścia negocjacji protokołu, która pozwala nieuwierzytelnionym atakującym na ustanowienie połączeń RDSTLS pomimo polityki serwera wyłączającej je. Atakujący mogą wysyłać niekompatybilne żądania protokołu, otrzymywać błędy negocjacji, a następnie zakończyć uzgadnianie TLS i wejść w RDSTLS, aby obejść ograniczenia transportu przed uwierzytelnianiem.
- CVE-2026-63633Krytyczne
W FreeRDP przed wersją 3.28.0 funkcja freerdp_dsp_decode_opus wywołuje Stream_EnsureRemainingCapacity na buforze kontekstu, mimo że opus_decode zapisuje dane do bufora dostarczonego przez wywołującego. Złośliwy serwer RDP negocjujący WAVE_FORMAT_OPUS może spowodować zapis dużych ramek poza przydzielony bufor, co prowadzi do uszkodzenia sterty klienta, awarii i potencjalnego wykonania kodu.
- CVE-2026-55194Krytyczne
W FreeRDP przed wersją 3.27.0 funkcja rpc_client_recv_fragment zapewnia pojemność bufora na podstawie tylko deklarowanego przez serwer alloc_hint, a nie rzeczywistej długości StubLength. Złośliwy serwer TS Gateway może wysłać odpowiedź z małym alloc_hint i dużym frag_length, powodując zapis danych poza bufor pdu->s. Może to doprowadzić do awarii klienta i potencjalnego wykonania kodu.
- CVE-2026-55191Krytyczne
W FreeRDP przed wersją 3.27.0 klienci negocjujący RDPGFX AVC444 obliczają rozmiar alokacji YUV444 przy użyciu 32-bitowego mnożenia w avc444_ensure_buffer. Złośliwy serwer RDP może podać wymiary powierzchni, dla których iloczyn piDstStride i padDstHeight zawija się do małej wartości, powodując alokację zbyt małego bufora. Może to doprowadzić do awarii klienta i potencjalnego wykonania kodu.
- CVE-2026-73242Krytyczne
FreeRDP, implementacja protokołu Remote Desktop Protocol, przed wersją 3.30.0 zawiera podatność w funkcji kerberos_DecryptMessage, która nie ogranicza kontrolowanego przez peera pola EC w tokenie GSS Wrap przed użyciem go w offsetach wskaźników IOV. Złośliwy peer RDP może wywołać odczyty poza zakresem i zapisy w miejscu podczas deszyfrowania Kerberos w CredSSP/NLA.
- CVE-2026-68579Krytyczne
FreeRDP przed wersją 3.30.0 zawiera przepełnienie bufora sterty w funkcji CliprdrStream_Read klienta schowka Windows. Złośliwy serwer RDP może wysłać odpowiedź o rozmiarze większym niż bufor odbiorcy, powodując zapis poza zakresem.
- CVE-2026-67289Krytyczne
FreeRDP przed wersją 3.29.0 (dotknięte wersje <= 3.28.0) nie waliduje znaków CRLF i kontrolnych w polu TargetNetAddress przekierowania RDP kontrolowanym przez serwer. Ta wartość jest kopiowana do ServerHostname klienta, a gdy klient łączy się przez proxy HTTP, jest zapisywana bezpośrednio w linii żądania CONNECT proxy i nagłówku Host przez http_proxy_connect() bez filtrowania. Złośliwy lub skompromitowany serwer RDP może wysłać spreparowany PDU przekierowania zawierający osadzone znaki kontrolne, aby wstrzyknąć dowolne nagłówki/żądania do żądania CONNECT proxy HTTP.
- CVE-2026-66402Krytyczne
FreeRDP przed wersją 3.29.0 (dotknięte wersje <= 3.28.0) zawiera wiele słabości weryfikacji tożsamości certyfikatu TLS w tls_verify_certificate(), tls_match_hostname() i x509_utils_get_dns_names(). Ponieważ FreeRDP wykonuje niestandardowe dopasowywanie Common Name i DNS SAN zamiast używać API OpenSSL uwzględniających długość, (1) obcina wartości DNS SAN przy osadzonych bajtach NUL (akceptując np. 'victim.example\0.attacker.example' jako 'victim.example'), (2) akceptuje pasujący Common Name nawet gdy obecne są niepasujące wpisy DNS SAN, oraz (3) akceptuje cele w postaci literałów IP poprzez dopasowanie DNS/CN bez porównywania iPAddress SAN. W zaufanym lub błędnie wydanym łańcuchu certyfikatów atakujący mogący przedstawić taki certyfikat może ominąć weryfikację tożsamości serwera, osłabiając uwierzytelnianie TLS serwera.
- CVE-2026-64620Krytyczne
Przepełnienie bufora sterty w FreeRDP przed wersją 3.28.0 (dotknięte <=3.27.1) w funkcji crypto_rsa_common(). Funkcja zapisuje wynik potęgowania modularnego do bufora wyjściowego przed sprawdzeniem granic, co pozwala na zapisanie danych poza buforem.
- CVE-2026-57158Krytyczne
FreeRDP w wersjach od 3.21.0 do 3.27.9 zawiera niekompletną poprawkę dla CVE-2026-23530 w funkcji planar_decompress_plane_rle_only w pliku planar.c. Złośliwy serwer RDP może wysłać specjalnie spreparowany ładunek planar RDPGFX_CMDID_WIRETOSURFACE_1, który powoduje odczyt jednego bajtu poza buforem wejściowym.
- CVE-2026-57156Krytyczne
W 32-bitowych wersjach FreeRDP przed 3.28.0 występuje przepełnienie liczby całkowitej w funkcji update_read_delta_points w pliku libfreerdp/core/orders.c. Atakujący serwer RDP może wykorzystać tę podatność do przydzielenia zbyt małego bufora sterty i zapisu poza jego granice.
- CVE-2026-45700Krytyczne
FreeRDP przed wersją 3.26.0 zawiera podatność polegającą na zapisie poza dozwolonym obszarem sterty w dekoderze bitmap planarnych. Atakujący może ominąć walidację współrzędnych i spowodować zapis poza buforem wewnętrznym.
- CVE-2026-31806Krytyczne
W FreeRDP przed wersją 3.24.0 funkcja gdi_surface_bits() nieprawidłowo waliduje wartości bmp.width i bmp.height dostarczane przez serwer RDP. Złośliwy serwer może wysłać spreparowane wartości przekraczające rozmiar powierzchni, co prowadzi do przepełnienia bufora sterty podczas dekodowania bitmap. Atakujący może kontrolować dane pikseli, co umożliwia potencjalne nadpisanie sąsiedniej pamięci sterty.
- CVE-2026-23884Krytyczne
W FreeRDP przed wersją 3.21.0 usuwanie bitmapy pozackranowej pozostawia wskaźnik `gdi->drawing` wskazujący na zwolnioną pamięć, co prowadzi do użycia po zwolnieniu (UAF) po otrzymaniu powiązanych pakietów aktualizacji. Złośliwy serwer może wywołać tę podatność po stronie klienta, powodując awarię (DoS) oraz potencjalne uszkodzenie sterty z ryzykiem wykonania kodu.
- CVE-2026-23883Krytyczne
W FreeRDP przed wersją 3.21.0 funkcja `xf_Pointer_New` zwalnia pamięć `cursorPixels` w przypadku błędu, a następnie `pointer_free` wywołuje `xf_Pointer_Free`, które ponownie zwalnia tę samą pamięć, co prowadzi do podwójnego zwolnienia (use-after-free) wykrywanego przez ASan. Złośliwy serwer może wywołać tę podatność po stronie klienta, powodując awarię (DoS) oraz potencjalne uszkodzenie sterty, co może umożliwić wykonanie kodu w zależności od zachowania alokatora i układu sterty.
- CVE-2026-23534Krytyczne
W FreeRDP przed wersją 3.21.0 wykryto podatność na przepełnienie bufora sterty po stronie klienta w dekodowaniu pasm ClearCodec. Specjalnie spreparowane współrzędne pasm umożliwiają zapis poza granicami bufora powierzchni docelowej.
- CVE-2026-23533Krytyczne
W FreeRDP przed wersją 3.21.0 wykryto podatność na przepełnienie bufora sterty po stronie klienta w ścieżce dekodowania RDPGFX ClearCodec. Złośliwie spreparowane dane resztkowe powodują zapis poza dozwolonym obszarem podczas generowania kolorów, co może prowadzić do awarii i potencjalnego wykonania kodu.
- CVE-2026-23532Krytyczne
W FreeRDP przed wersją 3.21.0 wykryto podatność przepełnienia bufora sterty po stronie klienta w ścieżce `gdi_SurfaceToSurface`. Problem wynika z niezgodności między ograniczeniem docelowego prostokąta a rzeczywistym rozmiarem kopii, co może prowadzić do awarii i potencjalnego wykonania kodu.
- CVE-2026-23531Krytyczne
W FreeRDP przed wersją 3.21.0, w komponencie ClearCodec, funkcja `clear_decompress` wywołuje `freerdp_image_copy_no_overlap` bez walidacji docelowego prostokąta, co umożliwia odczyt/zapis poza zakresem poprzez spreparowane aktualizacje powierzchni RDPGFX. Złośliwy serwer może wywołać przepełnienie bufora sterty po stronie klienta, prowadząc do awarii (DoS) oraz potencjalnego uszkodzenia sterty z ryzykiem wykonania kodu.
- CVE-2026-23530Krytyczne
W FreeRDP przed wersją 3.21.0 funkcja `freerdp_bitmap_decompress_planar` nie sprawdza poprawności wartości `nSrcWidth` i `nSrcHeight` względem `planar->maxWidth` i `maxHeight` przed dekodowaniem RLE. Złośliwy serwer może wykorzystać tę lukę do wywołania przepełnienia bufora sterty po stronie klienta, prowadząc do awarii (DoS) oraz potencjalnego uszkodzenia sterty z ryzykiem wykonania kodu.
- CVE-2026-22859Krytyczne
W bibliotece FreeRDP przed wersją 3.20.1 wykryto podatność polegającą na braku sprawdzania zakresu wartości MSUSB_INTERFACE_DESCRIPTOR dostarczanych przez serwer. Klient URBDRC używa tych wartości jako indeksów w funkcji libusb_udev_complete_msconfig_setup, co prowadzi do odczytu poza dozwolonym obszarem pamięci.
- CVE-2026-22858Krytyczne
W FreeRDP przed wersją 3.20.1 wykryto przepełnienie bufora globalnego w ścieżce dekodowania Base64. Problem wynika z implementacyjnie zdefiniowanej znakowości typu char: na platformach Arm/AArch64 typ char jest traktowany jako unsigned, przez co warunek c <= 0 może być zoptymalizowany do c != 0, co pozwala na użycie bajtów spoza ASCII (0x80-0xFF) jako indeksu do globalnej tablicy, prowadząc do odczytu poza zakresem.
- CVE-2026-22857Krytyczne
FreeRDP przed wersją 3.20.1 zawiera podatność use-after-free w funkcji irp_thread_func. Obiekt IRP jest zwalniany przez wywołanie irp->Complete(), a następnie ponownie używany na ścieżce błędu, co może prowadzić do naruszenia pamięci.
- CVE-2026-22855Krytyczne
W FreeRDP przed wersją 3.20.1 występuje podatność na odczyt poza dozwolonym obszarem sterty w ścieżce SetAttrib dla kart inteligentnych. Problem pojawia się, gdy długość atrybutu (cbAttrLen) nie zgadza się z rzeczywistą długością bufora NDR.
- CVE-2026-22854Krytyczne
FreeRDP przed wersją 3.20.1 zawiera podatność przepełnienia bufora na stercie podczas odczytu dysku. Długość odczytu kontrolowana przez serwer nie ma górnego ograniczenia, co pozwala na nadmierny odczyt i nadpisanie pamięci sterty.
- CVE-2026-22853Krytyczne
W bibliotece FreeRDP przed wersją 3.20.1 wykryto podatność polegającą na braku sprawdzania zakresu liczby elementów w czytniku tablic NDR protokołu RDPEAR. Atakujący może wykorzystać tę lukę do zapisu poza przydzielonym buforem sterty, co prowadzi do przepełnienia bufora sterty w funkcji ndr_read_uint8Array.
- CVE-2026-22852Krytyczne
FreeRDP przed wersją 3.20.1 zawiera podatność przepełnienia bufora na stercie podczas przetwarzania list formatów Audio Input (AUDIN). Funkcja audin_process_formats ponownie używa licznika formats_count i zapisuje poza nowo przydzieloną tablicą, powodując uszkodzenie pamięci i awarię.
- CVE-2025-68118Krytyczne
FreeRDP w wersji przed 3.20.0 zawiera podatność w obsłudze certyfikatów na platformie Windows. Funkcja freerdp_certificate_data_hash_uses używa _snprintf do formatowania nazw plików pamięci podręcznej certyfikatów bez gwarancji zakończenia NUL, co przy kontroli nazwy hosta przez atakującego może prowadzić do odczytu poza zakresem pamięci sterty.
- CVE-2026-114047Średnie
FreeRDP od wersji 2.0.0 przed 3.32.0 zawiera podatność nieprawidłowej walidacji certyfikatów w swoim proxy, która akceptuje niezaufane certyfikaty TLS celu, gdy nie skonfigurowano modułu weryfikacji. Atakujący znajdujący się w sieci może przechwycić połączenie wychodzące proxy i przedstawić certyfikat z podpisem własnym o nieprawidłowej nazwie hosta, aby podszyć się pod cel RDP i otrzymać dane sesji proxy.
- CVE-2026-114046Średnie
FreeRDP w wersji 3.0.0 przed 3.32.0 zawiera podatność dereferencji wskaźnika null w backendzie emulacji kart inteligentnych, która akceptuje null jako nazwę czytnika w żądaniach SCardGetStatusChange. Złośliwy serwer RDP może wysłać spreparowany wpis stanu czytnika z null szReader, powodując awarię procesu klienta przez strcmp lub _wcscmp.
- CVE-2026-114045Wysokie
FreeRDP przed wersją 3.32.1 zawiera przepełnienie bufora na stercie w kanale rdpsnd po stronie serwera. Błąd wynika z przepełnienia arytmetycznego przy obliczaniu wyrównania bloków DVI_ADPCM w rdpsnd_server_select_format(), które omija walidację. Złośliwy klient RDP może wysłać dwa PDU SNDC_FORMATS z nBlockAlign zbyt małym dla nChannels, powodując nieograniczony zapis do sterty podczas odtwarzania dźwięku na serwerze, co potencjalnie umożliwia wykonanie kodu.
- CVE-2026-114044Średnie
FreeRDP w wersjach przed 3.32.1 zawiera podatność odczytu poza granicami sterty w kliencie Android, która pozwala złośliwym serwerom RDP czytać poza bufory powierzchni poprzez dostarczanie niezwalidowanych wartości mappedWidth i mappedHeight. Atakujący może wysłać spreparowany RDPGFX_MAP_SURFACE_TO_WINDOW_PDU z nadmiernymi wymiarami, powodując kopiowanie pamięci sterty poza alokację przez android_UpdateWindowFromSurface, co prowadzi do awarii lub ujawnienia pamięci.
- CVE-2026-114043Średnie
W FreeRDP przed wersją 3.32.1 występuje błąd odczytu poza granicami bufora (heap-based out-of-bounds read) w module WinPR podczas konwersji PNG do CF_DIB w schowku. Funkcja winpr_read_png_from_buffer() alokuje bufor bit-packed dla PNG o głębi bitowej poniżej 8, podczas gdy winpr_bitmap_write_buffer() kopiuje wiersze zakładając jeden bajt na piksel. Złośliwy serwer RDP może wysłać spreparowany ładunek PNG o niskiej głębi bitowej, który po wklejeniu przez ofiarę ujawnia megabajty pamięci sterty.
- CVE-2026-114042Średnie
FreeRDP w wersji 3.32.0 zawiera podatność use-after-free w kanale drdynvc, która polega na zwolnieniu strumienia należącego do puli za pomocą dealokatora dla strumieni własnych, gdy totalLength jest mniejszy niż rozmiar fragmentu. Złośliwy serwer RDP może wysłać pojedynczy poprawny pakiet PDU kanału wirtualnego, aby wywołać zwolnienie i spowodować awarię klienta podczas zamykania.
- CVE-2026-114041Średnie
FreeRDP przed wersją 3.32.1 w systemie Windows zawiera błąd odczytu poza granicami bufora (heap out-of-bounds read) w funkcji client_cli_present_gateway_message, która przekazuje liczbę bajtów jako precyzję printf dla szerokich znaków. Złośliwy serwer RD Gateway może wysłać komunikaty zgody lub usługi przed uwierzytelnieniem, powodując odczyt dwukrotnie większego bufora przez klienta, co prowadzi do wycieku pamięci sterty lub awarii.
- CVE-2026-111881Wysokie
FreeRDP od 3.14.1 przed 3.32.0 zawiera niedomiar liczby całkowitej w module WinPR BMP writer, gdzie błędne obliczenie stride przekazuje SIZE_MAX - 3 do Stream_Zero dla obrazów sub-byte. Złośliwy peer schowka RDP może zwrócić spreparowany obraz 1-bpp BMP przetwarzany przez clipboard_synthesize_image_format_to_bmp dla CF_DIB/CF_DIBV5, powodując awarię klienta lub zapis poza granicami bufora.
- CVE-2026-111880Wysokie
FreeRDP w wersjach od 2.0.0 przed 3.32.0 zawiera zapis poza granicami sterty w ścieżce NTLM hash-callback serwera, która nie waliduje przesunięcia MIC. Nieuwierzytelnieni atakujący mogą wysłać spreparowany AUTHENTICATE_MESSAGE z cofniętym przesunięciem klucza sesji i przesunięciem MIC, aby zapisać 16 bajtów zer poza alokacją.
- CVE-2026-111382Wysokie
FreeRDP w wersjach przed 3.32.0 zawiera po stronie klienta podatność polegającą na zapisie poza zakresem sterty w funkcjach general_LumaToYUV444 i general_ChromaV2ToYUV444. Złośliwy serwer RDP może wysłać ramki RDPGFX AVC444 lub AVC444v2 z prostokątami regionów o nieparzystej wysokości kończącymi się na wysokości powierzchni, co powoduje zapis poza płaszczyzny U/V.
- CVE-2026-111381Wysokie
FreeRDP w wersjach przed 3.32.0 zawiera podatność przepełnienia bufora sterty w funkcji persistent_cache_read_entry_v2. Lokalny atakujący może uszkodzić pamięć sterty poprzez zawinięcie liczb całkowitych w obliczeniach rozmiaru bitmapy, dostarczając specjalnie spreparowany plik trwałego bufora v2 z nadmiernymi wartościami szerokości i wysokości.
- CVE-2026-111380Wysokie
FreeRDP od wersji 3.29.0 do 3.32.0 zawiera przepełnienie liczb całkowitych w backendach audio Apple (audin_mac.m, audin_ios.m). Rozmiar bufora kolejki audio jest obliczany jako FramesPerPacket * 2 * nChannels w arytmetyce UINT32, co omija poprawkę CVE-2026-91962. Złośliwy serwer RDP może wysłać FramesPerPacket o wartości 2^30 w pakiecie audin Open PDU, powodując zawinięcie mnożenia i zbyt małe alokacje AudioQueueAllocateBuffer, prowadząc do zapisu poza zakresem sterty w klientach macOS i iOS.
- CVE-2026-111379Wysokie
FreeRDP w wersjach przed 3.32.0 zawiera podatność przepełnienia bufora sterty w funkcji persistent_cache_read_entry_v3. Lokalny atakujący może uszkodzić pamięć, dostarczając specjalnie spreparowany plik trwałego bufora v3 z dużymi wartościami szerokości i wysokości, które powodują zawinięcie obliczeń rozmiaru w persist_cache_get_data, prowadząc do przepełnienia bufora przez fread.
- CVE-2026-111378Wysokie
FreeRDP od wersji 3.0.0 do 3.32.0 zawiera podatność niekontrolowanego zużycia zasobów w funkcji parse_nla_mode_pdu. Nieuwierzytelniony atakujący może wyczerpać pamięć serwera, wysyłając bajty nie rozpoczynające się od znacznika DER SEQUENCE 0x30 po zakończeniu TLS, co powoduje nieograniczony wzrost bufora odbiorczego przed uwierzytelnieniem NLA.
- CVE-2026-111377Średnie
FreeRDP od wersji 2.0.0 przed 3.32.0 zawiera podatność nieograniczonego reassembly w WTSProcessChannelData, która nie egzekwuje skumulowanych limitów fragmentów. Uwierzytelniony klient może rozpocząć wiadomość kanału statycznego, wstrzymać flagę LAST i wysyłać nieskończone fragmenty, wyczerpując pamięć serwera.
- CVE-2026-111376Średnie
FreeRDP od wersji 3.30.0 przed 3.32.0 zawiera podatność heap out-of-bounds read w CliprdrStream_New klienta Windows, która pozwala złośliwym serwerom RDP wywołać nieprawidłowe odczyty pamięci poprzez krótkie odpowiedzi schowka. Atakujący może odpowiedzieć na żądanie FILECONTENTS_SIZE z cbRequested mniejszym niż osiem bajtów, gdy użytkownik wkleja zdalny plik.
- CVE-2026-111375Średnie
FreeRDP w wersjach od 3.0.0 przed 3.32.0 zawiera podatność polegającą na odczycie poza granicami bufora w kliencie Windows RAIL. Złośliwy serwer RDP może wysłać tytuł okna bez zakończenia znakiem NUL, co prowadzi do nadmiernego odczytu sterty, uszkodzenia tytułów lub awarii klienta.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

