Podatności FreeRDP
90 znanych podatności CVE w FreeRDP, przetłumaczonych i ocenionych.
- CVE-2026-67296Wysokie
FreeRDP przed wersją 3.29.0 zawiera podatność na odmowę usługi w handlerze kanału serwera RDPEI. Złośliwy klient RDP może wysłać wiadomość RDPEI zawierającą tylko nagłówek z dużą zadeklarowaną długością treści, co powoduje nadmierne przydzielenie pamięci na serwerze.
- CVE-2026-67295Średnie
FreeRDP przed wersją 3.29.0 nieprawidłowo waliduje ścieżki RDPDR dostarczane przez serwer w przekierowaniu dysków. Pozwala to atakującemu na dostęp do ścieżek poza skonfigurowanym katalogiem głównym poprzez wysyłanie ścieżek niezakotwiczonych, omijających sprawdzanie granic.
- CVE-2026-67294Średnie
FreeRDP przed wersją 3.29.0 nieprawidłowo waliduje rozszerzone użycie klucza (EKU) certyfikatu równorzędnego podczas uwierzytelniania TLS po stronie klienta. Gdy weryfikacja celu serwera (X509_PURPOSE_SSL_SERVER) zawiedzie, kod przechodzi do weryfikacji celu klienta i dowolnego celu, co pozwala na akceptację certyfikatu ważnego tylko dla uwierzytelniania klienta jako certyfikatu serwera RDP.
- CVE-2026-67293Średnie
FreeRDP przed wersją 3.29.0 zawiera podatność nieprawidłowej walidacji nazwy hosta certyfikatu. Dopasowywacz nazw hosta TLS traktuje wzorzec wildcard, taki jak *.example.com, jako pasujący do dowolnej nazwy hosta kończącej się na .example.com, co powoduje błędną akceptację certyfikatu wildcard dla wieloetykietowych subdomen, takich jak a.b.example.com.
- CVE-2026-67292Średnie
FreeRDP przed wersją 3.29.0 zawiera podatność nadmiernego ujawniania bufora w transporcie WebSocket bramy. Odpowiedź Pong klienta używa stałego strumienia odpowiedzi o długości 1024 bajtów, której długość nie jest ograniczona do rzeczywistego ładunku Ping, co powoduje, że złośliwy peer WebSocket otrzymuje nadmiernie długi Pong ujawniający bajty poza odebranym ładunkiem. Ping o zerowej długości powoduje asercję i zakończenie klienta (odmowa usługi).
- CVE-2026-67291Wysokie
FreeRDP przed wersją 3.29.0 zawiera podatność odczytu poza dozwolonym obszarem sterty w funkcjach update_process_glyph_fragments() i glyph_cache_fragment_put(). Złośliwy serwer RDP może wysłać krótki fragment z zawyżonym rozmiarem, powodując odczyt poza buforem i awarię klienta.
- CVE-2026-67290Wysokie
FreeRDP przed wersją 3.29.0 zawiera podatność odczytu poza dozwolonym obszarem sterty w dekoderze TSMF FFmpeg podczas parsowania typów multimediów AVC1 MPEG2VIDEOINFO z niewystarczającymi danymi dodatkowymi. Atakujący może wysłać nieprawidłowe dane formatu multimediów, powodując awarię.
- CVE-2026-67288Wysokie
FreeRDP przed wersją 3.29.0 zawiera podatność dereferencji wskaźnika NULL w dekoderach żądań pamięci podręcznej kart inteligentnych. Gdy emulacja kart inteligentnych jest włączona, atakujący może wysłać spreparowane żądanie z pustym wskaźnikiem, powodując wywołanie strlen() na NULL i zakończenie procesu klienta.
- CVE-2026-66401Niskie
FreeRDP przed wersją 3.29.0 zawiera podatność odczytu sterty poza dozwolonym zakresem w parserze rozszerzenia UVC H.264, który nie waliduje długości deskryptora przed dostępem do pola GUID. Lokalny atakujący ze złośliwą kamerą USB może wywołać odczyt sterty poza przydzielone granice podczas konfiguracji strumienia kamery, powodując odmowę usługi.
- 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.

