CVE-2026-29774 json
FreeRDP has a heap-buffer-overflow in avc420_yuv_to_rgb via OOB regionRects
published 2026-03-13 7 mo ago modified 2026-06-17 4 mo ago also EUVD-2026-12055
- cvss
- 5.3
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.4%
- EPSS 0.4% chance of exploitation in 30 days, percentile 31%
- public exploits
- 0
- none known
Summary
FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to 3.24.0, a client-side heap buffer overflow occurs in the FreeRDP client's AVC420/AVC444 YUV-to-RGB conversion path due to missing horizontal bounds validation of H.264 metablock regionRects coordinates. In yuv.c, the clamp() function (line 347) only validates top/bottom against the surface/YUV height, but never checks left/right against the surface width. When avc420_yuv_to_rgb (line 67) computes destination and source pointers using rect->left, it performs unchecked pointer arithmetic that can reach far beyond the allocated surface buffer. A malicious server sends a WIRE_TO_SURFACE_PDU_1 with AVC420 codec containing a regionRects entry where left greatly exceeds the surface width (e.g., left=60000 on a 128px surface). The H.264 bitstream decodes successfully, then yuv420_process_work_callback calls avc420_yuv_to_rgb which computes pDstPoint = pDstData + rect->top * nDstStep + rect->left * 4, writing 16-byte SSE vectors 1888+ bytes past the allocated heap region. This vulnerability is fixed in 3.24.0.
Patch / fix
- freerdp freerdp 3.24.0
- freerdp3 Debian 13 3.15.0+dfsg-2.1+deb13u2
- freerdp3 Debian 14 3.24.0+dfsg-1
debian advisories DEBIAN-CVE-2026-29774
- freerdp3 Ubuntu 24.04 LTS 3.30.0+dfsg-0ubuntu0.24.04.1
ubuntu advisories UBUNTU-CVE-2026-29774
Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- freerdp openSUSE Tumbleweed 3.24.1-1.1
opensuse advisories openSUSE-SU-2026:10408-1
- freerdp Alpine 3.24, Alpine 3.23 3.24.0-r0
alpine advisories ALPINE-CVE-2026-29774
Alpine secdb © Alpine Linux, from https://secdb.alpinelinux.org via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-29774 updated cvss 5.3
freerdp: FreeRDP has a heap-buffer-overflow in avc420_yuv_to_rgb via OOB regionRects
-
Red Hat Enterprise Linux 6 freerdp, freerdp-libs, freerdp-pluginsaffected: workaround, no fix available “Fix deferred”
-
Red Hat Enterprise Linux 7 freerdp, libwinpr, freerdp-libs, freerdp-plugins Red Hat Enterprise Linux 8 freerdp, libwinpr, freerdp-libs Red Hat Enterprise Linux 9 freerdp, libwinpr, freerdp-libs Red Hat Enterprise Linux 10 freerdpnot affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- yes
- Technical impact
- partial
- Assessed
- 7 mo ago
Exploit prediction
0.38% chance of exploitation in the next 30 days, higher than 31% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-5q35-hv9x-7794 referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 5.3 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L |
| NVD | 3.1 | 8.2 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H |
Affected products
- FreeRDP FreeRDP
Classification
- Weakness
-
- CWE-787 Out-of-bounds Write
References
-
github.com
/FreeRDP/FreeRDP/commit/6482b7a92fff3959582cef052d1967ad6bde3738
patch
-
github.com
/FreeRDP/FreeRDP/security/advisories/GHSA-5q35-hv9x-7794
exploit, patch, vendor-advisory
Sources
- CVE List CVE-2026-29774
- NVD CVE-2026-29774
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.