Description
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.
Problem types
CWE-758: Reliance on Undefined, Unspecified, or Implementation-Defined Behavior
Product status
References
github.com/...reeRDP/security/advisories/GHSA-qmqf-m84q-x896
github.com/FreeRDP/FreeRDP/releases/tag/3.20.1