<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>FreeRDP (3.x Through 3.27.1) - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/freerdp-3.x-through-3.27.1/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata. Fed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Mon, 20 Jul 2026 12:29:24 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/freerdp-3.x-through-3.27.1/feed.xml" rel="self" type="application/rss+xml"/><item><title>FreeRDP Double-Free Vulnerability (CVE-2026-64621)</title><link>https://feed.craftedsignal.io/briefs/2026-07-freerdp-double-free/</link><pubDate>Mon, 20 Jul 2026 12:29:24 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-07-freerdp-double-free/</guid><description>A double-free vulnerability exists in FreeRDP versions 3.x through 3.27.1 within the freerdp_client_rdp_file_apply_to_settings() function, specifically when parsing the selectedmonitors field of a .rdp connection file. An attacker can exploit this by convincing a victim to open a crafted .rdp file containing oversized monitor tokens, leading to a size-controlled double-free in FreeRDP CLI clients like xfreerdp, sdl-freerdp, or wlfreerdp. This vulnerability can result in denial of service or potentially lead to arbitrary code execution.</description><content:encoded><![CDATA[<p>A significant double-free vulnerability, identified as CVE-2026-64621, affects FreeRDP versions 3.x through 3.27.1. This flaw resides within the <code>freerdp_client_rdp_file_apply_to_settings()</code> function, specifically during the parsing of the <code>selectedmonitors</code> field in a .rdp connection file. The <code>MonitorIds</code> array is allocated, but an error path during <code>strtoul</code> parsing leads to its premature deallocation without clearing the pointer. Consequently, when the FreeRDP client performs its routine cleanup via <code>freerdp_settings_free()</code>, it attempts to free the same memory region again, resulting in a double-free condition. Attackers can exploit this by creating a specially crafted .rdp file with oversized monitor tokens and convincing a victim to open it using any FreeRDP command-line interface (CLI) client such as xfreerdp, sdl-freerdp, or wlfreerdp. This vulnerability can lead to client application crashes, causing denial of service, and potentially enabling remote code execution.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An attacker crafts a malicious <code>.rdp</code> connection file containing oversized <code>MonitorIds</code> tokens within the <code>selectedmonitors</code> field.</li>
<li>The attacker delivers this crafted <code>.rdp</code> file to a victim, typically via email, a malicious website, or a file-sharing service.</li>
<li>The victim opens the malicious <code>.rdp</code> file using an affected FreeRDP CLI client (e.g., <code>xfreerdp</code>, <code>sdl-freerdp</code>, or <code>wlfreerdp</code>).</li>
<li>The FreeRDP client's <code>freerdp_client_rdp_file_apply_to_settings()</code> function begins parsing the <code>selectedmonitors</code> field from the <code>.rdp</code> file.</li>
<li>An internal error occurs during the <code>strtoul</code> parsing of the oversized monitor tokens, triggering an error handling path.</li>
<li>On this error path, the <code>MonitorIds</code> array is freed, but the <code>settings-&gt;MonitorIds</code> pointer is not cleared, leaving it dangling.</li>
<li>Later, during the FreeRDP client's normal teardown process, the <code>freerdp_settings_free()</code> function attempts to deallocate the <code>settings-&gt;MonitorIds</code> buffer again.</li>
<li>This second free operation on an already freed memory region causes a double-free, leading to memory corruption, a crash of the FreeRDP client, and potential remote code execution.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of CVE-2026-64621 results in a denial of service (DoS) for users of FreeRDP CLI clients, as the application will crash when attempting to process the malformed <code>.rdp</code> file. While the primary immediate impact is a client-side crash, memory corruption vulnerabilities like double-frees can often be leveraged by skilled attackers to achieve more severe consequences, including arbitrary code execution. If remote code execution is achieved, an attacker could gain control over the victim's system, leading to data compromise, system manipulation, or further network penetration. The vulnerability impacts anyone using vulnerable versions of FreeRDP CLI clients to connect to RDP sessions.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Patch CVE-2026-64621 by updating all FreeRDP installations to version 3.28.0 or later immediately.</li>
<li>Educate users about the risks of opening untrusted <code>.rdp</code> files.</li>
<li>Implement email and web filtering to block or quarantine <code>.rdp</code> files from unknown or suspicious sources to prevent the initial delivery vector.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>vulnerability</category><category>double-free</category><category>linux</category></item></channel></rss>