FreeRDP versions 3.28.0 and earlier contain a heap buffer overflow in the server-side RAIL channel handler (rail_server_handle_messages() in channels/rail/server/rail_main.c)
Affects freerdpSource GCVE Database
Not known to be exploited · CVSS 7.5 High · fixed in 3.29.0 : patch freerdp soon.
Data as of 31 Oct 2026, 08:20 UTC
- EPSS
- 0.6% chance of exploitation in 30 days – higher than 51% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
- Patch
- Available – fixed in 3.29.0
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:HExploitation evidence
Disclosed: evidence found.
CVE published 1 Aug 2026
Detectable: no evidence on record.
No public nuclei template indexed
Weaponized: no evidence on record.
No public exploit code indexed in Metasploit or Exploit-DB
Exploited in the wildExploited: no evidence on record.
Not in CISA KEV and no source reports exploitation
Observed by OffSeq MirageSeen by Mirage: no evidence on record.
No attack traffic recorded by OffSeq Mirage sensors
A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 30 Oct 2026.
What to do
Affected software
| Product | Affected | Fixed in |
|---|---|---|
GitHubfreerdp/FreeRDPpkg:github/freerdp/FreeRDPOther threats | Affected
| Fixed in– |
Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.
AI-suggested
A fix is available in FreeRDP version 3.29.0. Users and administrators should upgrade to version 3.29.0 or later to remediate this vulnerability. No vendor advisory content was provided to indicate alternative mitigations or temporary fixes. Patch status is confirmed by the vulnerability description stating the issue is fixed in 3.29.0.
Description
FreeRDP versions 3.28.0 and earlier contain a heap buffer overflow in the server-side RAIL channel handler (rail_server_handle_messages() in channels/rail/server/rail_main.c). When processing a RAIL PDU header, the code subtracts RAIL_PDU_HEADER_LENGTH from the peer-controlled orderLength field without first verifying orderLength is at least the header length. For orderLength values 0..3 this causes an unsigned integer underflow to a very large size, which bypasses the Stream_EnsureRemainingCapacity() capacity check (due to pointer arithmetic wraparound) and is then passed to WTSVirtualChannelRead(), resulting in an out-of-bounds heap write. A malicious or compromised RDP client can exploit this to corrupt the heap and crash the server. Fixed in FreeRDP 3.29.0.
References
- github.com/FreeRDP/FreeRDP/security/advisories/GHSA-qmvw-52ph-q5pv (opens in a new tab)
- nvd.nist.gov/vuln/detail/CVE-2026-67298 (opens in a new tab)
- github.com/FreeRDP/FreeRDP/commit/46848765f2a1134f8652f8760eefb5e85d64a9b8 (opens in a new tab)
- github.com/FreeRDP/FreeRDP/commit/5370fb26fbf034ecd11d3026b6ad639b5fff493f (opens in a new tab)
- vulncheck.com/advisories/freerdp-heap-buffer-overflow-via-rail-orderlength-underflow (opens in a new tab)
- ubuntu.com/security/CVE-2026-67298 (opens in a new tab)
- cve.org/CVERecord?id=CVE-2026-67298 (opens in a new tab)
- github.com/FreeRDP/FreeRDP/security/advisories/GHSA-5wr6-8m8j-3h7f (opens in a new tab)