Podatności FreeRDP
181 znanych podatności CVE w FreeRDP, przetłumaczonych i ocenionych.
- CVE-2026-64624Wysokie
FreeRDP przed wersją 3.28.0 traktuje linie zaczynające się od ukośnika w plikach RDP jako surowe opcje wiersza poleceń, co udostępnia całą powierzchnię parsera CLI niezaufanym plikom. Atakujący mogą stworzyć złośliwe pliki RDP z opcjami /rdp2tcp, /cert:ignore lub /drive, aby wykonać dowolne polecenia, ominąć weryfikację certyfikatów lub ujawnić lokalne systemy plików bez interakcji użytkownika.
- CVE-2026-64621Wysokie
Podwójne zwolnienie pamięci (double-free) w FreeRDP przed wersją 3.28.0 (wersje 3.x do 3.27.1) w funkcji freerdp_client_rdp_file_apply_to_settings() podczas parsowania pola selectedmonitors pliku .rdp. Atakujący może przekonać ofiarę do otwarcia spreparowanego pliku .rdp z nadmiernymi tokenami monitorów, co powoduje podwójne zwolnienie bufora i potencjalnie umożliwia wykonanie kodu.
- CVE-2026-57157Średnie
W serwerowych implementacjach FreeRDP z włączonym kanałem wyliczania urządzeń kamery MS-RDPECAM, złośliwy klient RDP może wywołać odczyt 1-2 bajtów poza dozwolonym obszarem sterty. Podatność występuje w funkcji przetwarzającej pola DeviceName i VirtualChannelName przed wersją 3.28.0.
- CVE-2026-55827Wysokie
W FreeRDP przed wersją 3.27.1, przy użyciu opcji /cache:codec:rfx, klienci przekazują nieprawidłowe wymiary do dekodowania RemoteFX, co pozwala złośliwemu serwerowi RDP na zapis poza przydzieloną pamięcią sterty z kontrolowanym offsetem i zawartością.
- CVE-2026-56297Wysokie
FreeRDP przed wersją 3.22.0 zawiera podatność use-after-free w funkcjach dvcman_channel_close i dvcman_call_on_receive z powodu nieprawidłowej synchronizacji dostępu do channel_callback. Złośliwy serwer RDP może wywołać wyścig poprzez jednoczesne wysyłanie komunikatów DYNVC_DATA i DYNVC_CLOSE, powodując użycie sterty po zwolnieniu w wątku klienta drdynvc, co może umożliwić zdalne wykonanie kodu lub odmowę usługi.
- CVE-2026-44422Wysokie
Podatność use-after-free/double-free w parserze NDR RDPEAR w FreeRDP przed wersją 3.26.0. Złośliwy serwer może wykorzystać ponowne użycie identyfikatora ref-id dla wielu pól wskaźników, powodując podwójne zwolnienie pamięci.
- CVE-2026-44421Wysokie
W FreeRDP przed wersją 3.26.0 złośliwy serwer RDP może wywołać zapis poza zakresem sterty (heap-buffer-overflow) w kliencie FreeRDP poprzez wysłanie spreparowanych PDU RDPGFX. Błąd znajduje się w funkcji gdi_CacheToSurface: waliduje ona docelowy prostokąt przycięty do UINT16_MAX, ale kopiowanie wykonuje z użyciem oryginalnych wartości cacheEntry->width/height, co może prowadzić do dużego zapisu poza zakresem sterty i potencjalnie do wykonania kodu.
- CVE-2026-44420Wysokie
W FreeRDP, przed wersją 3.26.0, złośliwy klient RDP może wywołać przepełnienie bufora sterty (heap-buffer-overflow) w kanale schowka (cliprdr) po stronie serwera. Dzieje się to poprzez wysłanie PDU CB_CLIP_CAPS z zbyt małym polem capabilitySetLength. Może to doprowadzić do awarii serwera (DoS) i potencjalnie do wykonania kodu.
- CVE-2026-40033Wysokie
W FreeRDP przed wersją 3.26.0 występuje podatność przepełnienia sterty (heap-buffer-overflow) w funkcji gdi_CacheToSurface, pozwalająca zdalnym atakującym na zapis poza zakresem pamięci sterty. Walidacja prostokątów ogranicza współrzędne do UINT16_MAX, ale operacje kopiowania używają nieskalowanych wymiarów wpisów pamięci podręcznej, co umożliwia złośliwym serwerom RDP wywołanie dużych zapisów poza zakresem i potencjalne zdalne wykonanie kodu lub awarię klienta.
- CVE-2026-33986Wysokie
W bibliotece FreeRDP przed wersją 3.24.2 w funkcji yuv_ensure_buffer() w pliku h264.c, wartości h264->width i h264->height są aktualizowane przed pętlą realokacji. Jeśli wywołanie winpr_aligned_recalloc() zakończy się niepowodzeniem, funkcja zwraca FALSE, ale szerokość i wysokość są już zawyżone, co prowadzi do niespójności stanu.
- CVE-2026-33984Wysokie
W FreeRDP przed wersją 3.24.2 w funkcji resize_vbar_entry() występuje podatność na przepełnienie bufora sterty. Aktualizacja rozmiaru przed realokacją może prowadzić do zapisu danych poza przydzielony obszar pamięci.
- CVE-2026-33983Średnie
W FreeRDP przed wersją 3.24.2 wykryto podatność w funkcji progressive_decompress_tile_upgrade(), która nie przerywa wykonania po wykryciu niezgodności, a jedynie loguje ostrzeżenie. Użycie zawiniętej wartości (247) jako wykładnika przesunięcia prowadzi do niezdefiniowanego zachowania i pętli wykonującej około 80 miliardów iteracji, powodując odmowę usługi (DoS) na CPU.
- CVE-2026-26965Wysokie
W FreeRDP przed wersją 3.23.0 w funkcji `planar_decompress_plane_rle()` brakuje walidacji wymiarów docelowych bufora, co pozwala złośliwemu serwerowi RDP na zapis poza przydzieloną pamięcią sterty. Atakujący może nadpisać wskaźnik funkcji w strukturze `NSC_CONTEXT`, przejmując kontrolę nad przepływem sterowania klienta.
- CVE-2026-26955Wysokie
W FreeRDP przed wersją 3.23.0 wykryto podatność na przepełnienie sterty (heap buffer overflow) w kliencie używającym potoku powierzchni GDI. Złośliwy serwer RDP może wysłać polecenie powierzchni RDPGFX ClearCodec z nieprawidłowymi współrzędnymi prostokąta docelowego, co prowadzi do zapisu poza dozwolonym obszarem pamięci. Atakujący może w ten sposób nadpisać wskaźnik `codecs*` w strukturze `gdiGfxSurface`, co umożliwia przejęcie kontroli nad przepływem wykonania kodu.
- CVE-2026-24678Wysokie
W bibliotece FreeRDP przed wersją 3.22.0 występuje podatność use-after-free w funkcji ecam_channel_write. Wątek przechwytujący wysyła odpowiedzi próbek przy użyciu zwolnionego wywołania zwrotnego kanału po zamknięciu kanału urządzenia.
- CVE-2025-4478Średnie
Wykryto podatność w FreeRDP używanym przez funkcję zdalnej instalacji Anacondy, gdzie spreparowany pakiet RDP może wywołać błąd segmentacji. Powoduje to awarię usługi i jej trwałe unieruchomienie, prowadząc do odmowy usługi. Problem występuje przed uruchomieniem systemu i prawdopodobnie wynika z dereferencji wskaźnika NULL.
- CVE-2023-40576Średnie
FreeRDP, darmowa implementacja protokołu RDP, ma podatność na odczyt poza zakresem w funkcji `RleDecompress`. Problem ten występuje, gdy zmienna `pbSrcBuffer` jest przetwarzana bez sprawdzenia, czy zawiera wystarczającą ilość danych.
- CVE-2023-40575Średnie
FreeRDP, darmowa implementacja protokołu RDP, ma podatność na odczyt poza zakresem w funkcji `general_YUV444ToRGB_8u_P3AC4R_BGRX`. Problem ten wynika z niewystarczających danych dla zmiennej `pSrc`, co prowadzi do awarii.
- CVE-2023-40574Średnie
FreeRDP, darmowa implementacja protokołu RDP, ma podatność na zapis poza granicami w funkcji `writePixelBGRX`. Problem wynika z błędnych obliczeń zmiennych `nHeight` i `srcStep`. Został naprawiony w wersji 3.0.0-beta3.
- CVE-2023-40569Średnie
FreeRDP, darmowa implementacja protokołu RDP, ma podatność na zapis poza granicami w funkcji `progressive_decompress`. Problem wynika z błędnych obliczeń zmiennych `nXSrc` i `nYSrc`. Został naprawiony w wersjach 2.11.0 i 3.0.0-beta3.
- CVE-2023-40567Średnie
FreeRDP, darmowa implementacja protokołu zdalnego pulpitu (RDP), ma podatność na zapis poza granicami w funkcji `clear_decompress_bands_data`, w której brakuje walidacji offsetu. Wykorzystanie tej podatności może prowadzić do nieautoryzowanego zapisu.
- CVE-2023-40188Średnie
FreeRDP, darmowa implementacja protokołu RDP, ma podatność na odczyt poza zakresem w funkcji `general_LumaToYUV444`. Problem ten występuje z powodu przetwarzania zmiennej `in` bez sprawdzenia, czy zawiera wystarczającą ilość danych.
- CVE-2023-40186Średnie
FreeRDP, darmowa implementacja protokołu RDP, ma podatność na przepełnienie całkowite w funkcji `gdi_CreateSurface`, co prowadzi do zapisu poza przydzielonym obszarem pamięci. Problem dotyczy tylko klientów opartych na FreeRDP, a nie dotyczy proxy FreeRDP.
- CVE-2023-40181Średnie
FreeRDP, darmowa implementacja protokołu RDP, ma podatność na Integer-Underflow, co prowadzi do odczytu danych poza zakresem pakietu w funkcji `zgfx_decompress_segment`. Problem ten może spowodować awarię aplikacji.
- CVE-2023-39356Średnie
W FreeRDP, w dotkniętych wersjach, brak walidacji offsetu może prowadzić do błędu odczytu poza zakresem w funkcji `gdi_multi_opaque_rect`. Brak odpowiednich kontroli granic podczas iteracji przez `multi_opaque_rect->numRectangles` może skutkować błędami odczytu poza zakresem, co prawdopodobnie prowadzi do awarii.
- CVE-2023-39353Średnie
FreeRDP, darmowa implementacja protokołu RDP, ma problem z brakiem walidacji offsetów, co prowadzi do odczytu poza granicami pamięci. W pliku `libfreerdp/codec/rfx.c` brak walidacji w `tile->quantIdxY`, `tile->quantIdxCb` i `tile->quantIdxCr` może prowadzić do awarii aplikacji.
- CVE-2023-39352Średnie
FreeRDP, darmowa implementacja protokołu RDP, ma problem z walidacją przesunięcia, co prowadzi do zapisu poza przydzielonym obszarem pamięci. Może to być wywołane, gdy wartości `rect->left` i `rect->top` są równe odpowiednio `surface->width` i `surface->height`, co w praktyce powinno powodować awarię.
- CVE-2023-39355Wysokie
FreeRDP w wersjach 3.x przed beta3 jest podatny na błąd Use-After-Free podczas przetwarzania pakietów `RDPGFX_CMDID_RESETGRAPHICS`. W przypadku, gdy `context->maxPlaneSize` wynosi 0, `context->planesBuffer` zostanie zwolniony, co prowadzi do potencjalnego wykorzystania tej podatności.
- CVE-2023-39354Średnie
FreeRDP, darmowa implementacja protokołu RDP, ma podatność na odczyt poza zakresem w funkcji `nsc_rle_decompress_data`. Problem ten występuje, ponieważ nie sprawdzane jest, czy `context->Planes` zawiera dane o odpowiedniej długości.
- CVE-2023-39351Średnie
FreeRDP, darmowa implementacja protokołu RDP, ma podatność na dereferencję wskaźnika NULL, co prowadzi do awarii w obsłudze RemoteFX. Problem występuje w funkcji `rfx_process_message_tileset`, gdzie niewłaściwe przydzielenie pamięci dla kafelków może skutkować dostępem do wskaźnika NULL.
- CVE-2023-40589Średnie
W FreeRDP występuje podatność typu Global-Buffer-Overflow w funkcji ncrush_decompress, która może zostać wywołana przez odpowiednio przygotowane dane wejściowe. Problem ten powoduje awarię aplikacji i został naprawiony w wersjach 2.11.0 oraz 3.0.0-beta3.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

