Klienty FreeRDP w wersjach przed 3.5.0 i 2.11.6 są podatne na integer overflow oraz out-of-bounds write podczas przetwarzania danych graficznych (GFX). Podatność o krytycznym poziomie CVSS 9.8 może zostać wykorzystana zdalnie bez uwierzytelnienia.
▸ Pokaż oryginał (EN)
FreeRDP is a free implementation of the Remote Desktop Protocol. FreeRDP based clients using a version of FreeRDP prior to 3.5.0 or 2.11.6 are vulnerable to integer overflow and out-of-bounds write. Versions 3.5.0 and 2.11.6 patch the issue. As a workaround, do not use `/gfx` options (e.g. deactivate with `/bpp:32` or `/rfx` as it is on by default).
Błąd polega na przepełnieniu liczby całkowitej (integer overflow, CWE-190), które prowadzi do zapisu poza granicami przydzielonego bufora pamięci (out-of-bounds write, CWE-787). Problem ujawnia się w ścieżce obsługi opcji graficznych `/gfx`, aktywnej domyślnie w klientach FreeRDP. Atakujący może wysłać spreparowane dane z poziomu złośliwego lub skompromitowanego serwera RDP, wywołując uszkodzenie pamięci procesu klienckiego.
Atakujący może doprowadzić do wykonania dowolnego kodu (RCE) na maszynie klienckiej lub spowodować awarię aplikacji, co w najgorszym przypadku oznacza pełne przejęcie kontroli nad systemem użytkownika łączącego się przez FreeRDP.
Należy zaktualizować FreeRDP do wersji 3.5.0 lub 2.11.6. Jako obejście (workaround) można wyłączyć opcje GFX, używając parametrów `/bpp:32` lub `/rfx` przy uruchamianiu klienta, co dezaktywuje podatną ścieżkę kodu (GFX jest domyślnie włączone).
Klienty FreeRDP oparte na FreeRDP w wersjach wcześniejszych niż 3.5.0 oraz wcześniejszych niż 2.11.6, a także pakiety Fedora zawierające podatne wersje FreeRDP.
Producent udostępnił poprawkę w ramach pull request #10077 w repozytorium GitHub FreeRDP. Workaround polega na unikaniu opcji `/gfx`, np. przez użycie `/bpp:32` lub `/rfx`.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HFedora Project Fedora
OSFedoraproject383940Freerdp
APPFreerdp< 2.11.63.0.0 – 3.5.0 (bez)
Powiązane podatności
PHP CGI argument injection – RCE na Windows przez mechanizm Best-Fit
Type Confusion w V8 (Google Chrome) — RCE przez spreparowaną stronę HTML
Type Confusion w silniku V8 Chrome — zdalne wykonanie kodu (RCE)
Use-after-free w Google Chrome Visuals umożliwiający ucieczkę z sandbox
Integer overflow w Skia w Google Chrome — sandbox escape