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.
https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-22858.json
https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-qmqf-m84q-x896
https://github.com/FreeRDP/FreeRDP/releases/tag/3.20.1
https://bugzilla.redhat.com/show_bug.cgi?id=2429649
https://access.redhat.com/security/cve/CVE-2026-22858
https://access.redhat.com/errata/RHSA-2026:4489
https://access.redhat.com/errata/RHSA-2026:4471
https://access.redhat.com/errata/RHSA-2026:4446
https://access.redhat.com/errata/RHSA-2026:4440
https://access.redhat.com/errata/RHSA-2026:4439
https://access.redhat.com/errata/RHSA-2026:4438
https://access.redhat.com/errata/RHSA-2026:4437
https://access.redhat.com/errata/RHSA-2026:4433
https://access.redhat.com/errata/RHSA-2026:4121
https://access.redhat.com/errata/RHSA-2026:3975
https://access.redhat.com/errata/RHSA-2026:3334
https://access.redhat.com/errata/RHSA-2026:3068
Published: 2026-01-14
Updated: 2026-06-30
Base Score: 9.4
Vector: CVSS2#AV:N/AC:L/Au:N/C:C/I:N/A:C
Severity: High
Base Score: 9.1
Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H
Severity: Critical
Base Score: 6.1
Vector: CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:P/VC:H/VI:N/VA:H/SC:N/SI:N/SA:N
Severity: Medium
EPSS: 0.00044