CVE-2026-22858
KrytyczneCVSS 9.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 45 - wyżej niż 45% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Atakujący może zdalnie spowodować awarię serwera RDP lub potencjalnie uzyskać dostęp do pamięci poza zakresem, co może prowadzić do wycieku danych lub dalszej eskalacji uprawnień.
Rekomendacja
Należy niezwłocznie zaktualizować FreeRDP do wersji 3.20.1 lub nowszej, która zawiera poprawkę eliminującą podatność.
Oryginalny opis (angielski, źródło NVD)
FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to 3.20.1, global-buffer-overflow was observed in FreeRDP's Base64 decoding path. The root cause appears to be implementation-defined char signedness: on Arm/AArch64 builds, plain char is treated as unsigned, so the guard c <= 0 can be optimized into a simple c != 0 check. As a result, non-ASCII bytes (e.g., 0x80-0xFF) may bypass the intended range restriction and be used as an index into a global lookup table, causing out-of-bounds access. This vulnerability is fixed in 3.20.1.

