CVE-2025-68118
KrytyczneStreszczenie
FreeRDP przed wersją 3.20.0 zawiera podatność w kodzie obsługi certyfikatów na platformach Windows. Funkcja `freerdp_certificate_data_hash_uses` używa specyficznej dla Microsoftu funkcji `_snprintf` do formatowania nazw plików pamięci podręcznej certyfikatów bez gwarancji zakończenia NUL w przypadku przycięcia. Jeśli atakujący kontroluje wartość hostname (np. przez przekierowanie serwera lub spreparowany plik .rdp), bufor nazwy pliku może nie być zakończony NUL, co prowadzi do odczytu poza przydzielonym obszarem pamięci (heap-based out-of-bounds read). W domyślnej konfiguracji połączenie jest zwykle przerywane przed znaczącym ujawnieniem danych, ale może wystąpić nieoczekiwany odczyt pamięci lub awaria klienta.
Ocena ryzyka
Podatność może prowadzić do wycieku informacji z pamięci lub awarii klienta, co może wpłynąć na stabilność i bezpieczeństwo sesji RDP.
Rekomendacja
Zaleca się aktualizację FreeRDP do wersji 3.20.0 lub nowszej, która zawiera poprawkę bezpieczeństwa.
Oryginalny opis (angielski, źródło NVD)
FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.20.0, a vulnerability exists in FreeRDP’s certificate handling code on Windows platforms. The function `freerdp_certificate_data_hash_ uses` the Microsoft-specific `_snprintf` function to format certificate cache filenames without guaranteeing NUL termination when truncation occurs. According to Microsoft documentation, `_snprintf` does not append a terminating NUL byte if the formatted output exceeds the destination buffer size. If an attacker controls the hostname value (for example via server redirection or a crafted .rdp file), the resulting filename buffer may not be NUL-terminated. Subsequent string operations performed on this buffer may read beyond the allocated memory region, resulting in a heap-based out-of-bounds read. In default configurations, the connection is typically terminated before sensitive data can be meaningfully exposed, but unintended memory read or a client crash may still occu

