Join the Cyber Forum: Threat Intel on May 12, 2026 to learn how AI is reshaping threat defense.Join the Virtual Cyber Forum: Threat IntelRegister Now
Experiencing a Breach?Blog
Get StartedContact Us
SentinelOne
  • Platform
    Platform Overview
    • Singularity Platform
      Welcome to Integrated Enterprise Security
    • AI for Security
      Leading the Way in AI-Powered Security Solutions
    • Securing AI
      Accelerate AI Adoption with Secure AI Tools, Apps, and Agents.
    • How It Works
      The Singularity XDR Difference
    • Singularity Marketplace
      One-Click Integrations to Unlock the Power of XDR
    • Pricing & Packaging
      Comparisons and Guidance at a Glance
    Data & AI
    • Purple AI
      Accelerate SecOps with Generative AI
    • Singularity Hyperautomation
      Easily Automate Security Processes
    • AI-SIEM
      The AI SIEM for the Autonomous SOC
    • AI Data Pipelines
      Security Data Pipeline for AI SIEM and Data Optimization
    • Singularity Data Lake
      AI-Powered, Unified Data Lake
    • Singularity Data Lake for Log Analytics
      Seamlessly Ingest Data from On-Prem, Cloud or Hybrid Environments
    Endpoint Security
    • Singularity Endpoint
      Autonomous Prevention, Detection, and Response
    • Singularity XDR
      Native & Open Protection, Detection, and Response
    • Singularity RemoteOps Forensics
      Orchestrate Forensics at Scale
    • Singularity Threat Intelligence
      Comprehensive Adversary Intelligence
    • Singularity Vulnerability Management
      Application & OS Vulnerability Management
    • Singularity Identity
      Identity Threat Detection and Response
    Cloud Security
    • Singularity Cloud Security
      Block Attacks with an AI-Powered CNAPP
    • Singularity Cloud Native Security
      Secure Cloud and Development Resources
    • Singularity Cloud Workload Security
      Real-Time Cloud Workload Protection Platform
    • Singularity Cloud Data Security
      AI-Powered Threat Detection for Cloud Storage
    • Singularity Cloud Security Posture Management
      Detect and Remediate Cloud Misconfigurations
    Securing AI
    • Prompt Security
      Secure AI Tools Across Your Enterprise
  • Why SentinelOne?
    Why SentinelOne?
    • Why SentinelOne?
      Cybersecurity Built for What’s Next
    • Our Customers
      Trusted by the World’s Leading Enterprises
    • Industry Recognition
      Tested and Proven by the Experts
    • About Us
      The Industry Leader in Autonomous Cybersecurity
    Compare SentinelOne
    • Arctic Wolf
    • Broadcom
    • CrowdStrike
    • Cybereason
    • Microsoft
    • Palo Alto Networks
    • Sophos
    • Splunk
    • Trellix
    • Trend Micro
    • Wiz
    Verticals
    • Energy
    • Federal Government
    • Finance
    • Healthcare
    • Higher Education
    • K-12 Education
    • Manufacturing
    • Retail
    • State and Local Government
  • Services
    Managed Services
    • Managed Services Overview
      Wayfinder Threat Detection & Response
    • Threat Hunting
      World-Class Expertise and Threat Intelligence
    • Managed Detection & Response
      24/7/365 Expert MDR Across Your Entire Environment
    • Incident Readiness & Response
      DFIR, Breach Readiness, & Compromise Assessments
    Support, Deployment, & Health
    • Technical Account Management
      Customer Success with Personalized Service
    • SentinelOne GO
      Guided Onboarding & Deployment Advisory
    • SentinelOne University
      Live and On-Demand Training
    • Services Overview
      Comprehensive Solutions for Seamless Security Operations
    • SentinelOne Community
      Community Login
  • Partners
    Our Network
    • MSSP Partners
      Succeed Faster with SentinelOne
    • Singularity Marketplace
      Extend the Power of S1 Technology
    • Cyber Risk Partners
      Enlist Pro Response and Advisory Teams
    • Technology Alliances
      Integrated, Enterprise-Scale Solutions
    • SentinelOne for AWS
      Hosted in AWS Regions Around the World
    • Channel Partners
      Deliver the Right Solutions, Together
    • SentinelOne for Google Cloud
      Unified, Autonomous Security Giving Defenders the Advantage at Global Scale
    • Partner Locator
      Your Go-to Source for Our Top Partners in Your Region
    Partner Portal→
  • Resources
    Resource Center
    • Case Studies
    • Data Sheets
    • eBooks
    • Reports
    • Videos
    • Webinars
    • Whitepapers
    • Events
    View All Resources→
    Blog
    • Feature Spotlight
    • For CISO/CIO
    • From the Front Lines
    • Identity
    • Cloud
    • macOS
    • SentinelOne Blog
    Blog→
    Tech Resources
    • SentinelLABS
    • Ransomware Anthology
    • Cybersecurity 101
  • About
    About SentinelOne
    • About SentinelOne
      The Industry Leader in Cybersecurity
    • Investor Relations
      Financial Information & Events
    • SentinelLABS
      Threat Research for the Modern Threat Hunter
    • Careers
      The Latest Job Opportunities
    • Press & News
      Company Announcements
    • Cybersecurity Blog
      The Latest Cybersecurity Threats, News, & More
    • FAQ
      Get Answers to Our Most Frequently Asked Questions
    • DataSet
      The Live Data Platform
    • S Foundation
      Securing a Safer Future for All
    • S Ventures
      Investing in the Next Generation of Security, Data and AI
  • Pricing
Get StartedContact Us
CVE Vulnerability Database
Vulnerability Database/CVE-2026-25954

CVE-2026-25954: FreeRDP Use-After-Free Vulnerability

CVE-2026-25954 is a use-after-free vulnerability in FreeRDP that occurs when a freed xfAppWindow pointer is dereferenced during concurrent window operations. This article covers technical details, affected versions, and mitigations.

Published: February 27, 2026

CVE-2026-25954 Overview

CVE-2026-25954 is a Use After Free vulnerability in FreeRDP, a free implementation of the Remote Desktop Protocol. The vulnerability exists in the xf_rail_server_local_move_size function, which dereferences a freed xfAppWindow pointer due to improper synchronization between threads. The xf_rail_get_window function returns an unprotected pointer from the railWindows hash table, and the main thread can concurrently delete the window via a window delete order while the RAIL channel thread is still using the pointer.

Critical Impact

This race condition vulnerability can lead to memory corruption and potential denial of service when a FreeRDP client processes concurrent RAIL (Remote Applications Integrated Locally) window operations from a malicious or compromised RDP server.

Affected Products

  • FreeRDP versions prior to 3.23.0
  • FreeRDP X11 client with RAIL support enabled
  • Applications built on vulnerable FreeRDP libraries

Discovery Timeline

  • 2026-02-25 - CVE-2026-25954 published to NVD
  • 2026-02-26 - Last updated in NVD database

Technical Details for CVE-2026-25954

Vulnerability Analysis

This Use After Free vulnerability (CWE-416) occurs due to a race condition in FreeRDP's RAIL subsystem. The RAIL feature allows remote Windows applications to appear as local windows on the client system, requiring complex window management between multiple threads. The vulnerability stems from the xf_rail_get_window function returning a raw pointer from the railWindows hash table without proper locking mechanisms to prevent concurrent modification.

When the main thread processes a window delete order from the RDP server, it can free the xfAppWindow structure while the RAIL channel thread still holds a reference to that memory. Any subsequent dereferencing of this stale pointer in functions like xf_rail_server_local_move_size results in accessing freed memory, which can cause crashes or potentially enable memory corruption.

The vulnerability is exploitable over the network by a malicious RDP server that sends carefully timed window management commands, though it requires no authentication or user interaction beyond establishing an RDP connection with RAIL support.

Root Cause

The root cause is a missing synchronization mechanism when accessing window objects from the shared railWindows hash table. The hash table is accessed by multiple threads concurrently without proper locking, creating a Time-of-Check Time-of-Use (TOCTOU) race condition. When xf_rail_get_window retrieves a pointer, there is no guarantee that the pointer remains valid while being used, as another thread may free the underlying memory at any point.

Attack Vector

An attacker operating a malicious RDP server can exploit this vulnerability by sending rapid sequences of RAIL window creation and deletion orders. The attack exploits the timing window between when the RAIL channel thread retrieves a window pointer and when it finishes using it. By sending a window delete order while a move/resize operation is in progress, the attacker can trigger the use-after-free condition.

The attack requires:

  1. A victim connecting to a malicious RDP server with RAIL support enabled
  2. The server sending concurrent window operations to create a race condition
  3. Precise timing to ensure the pointer is dereferenced after being freed
c
// Security patch demonstrating the fix - adding proper hash table locking
// Source: https://github.com/FreeRDP/FreeRDP/commit/1994e9844212a6dfe0ff12309fef520e888986b5
 	}
 	if (xfc->remote_app)
 	{
+		Window w = 0;
+		HashTable_Lock(xfc->railWindows);
 		if (!xfc->appWindow)
-		{
 			WLog_WARN(TAG, "xf_Pointer: Invalid appWindow");
-			return 0;
-		}
-		return xfc->appWindow->handle;
+		else
+			w = xfc->appWindow->handle;
+		HashTable_Unlock(xfc->railWindows);
+		return w;
 	}
 	else
 	{

The fix introduces proper locking around hash table access using HashTable_Lock and HashTable_Unlock to ensure thread-safe window object access.

Detection Methods for CVE-2026-25954

Indicators of Compromise

  • Unexpected FreeRDP client crashes during RAIL sessions with remote applications
  • Core dumps or crash logs showing segmentation faults in xf_rail.c functions
  • Memory access violations in the RAIL channel processing threads
  • Unusual patterns of rapid window creation/deletion commands in RDP session logs

Detection Strategies

  • Monitor for FreeRDP client process crashes that occur during remote application sessions
  • Implement application crash monitoring with stack trace analysis for patterns involving xf_rail_get_window or xf_rail_server_local_move_size
  • Review RDP session logs for anomalous RAIL window operation patterns that may indicate exploitation attempts
  • Deploy endpoint detection rules that flag FreeRDP crashes with memory corruption signatures

Monitoring Recommendations

  • Enable crash dump collection for FreeRDP client processes to capture exploitation attempts
  • Monitor for unusual RDP connection patterns to unknown or suspicious servers
  • Implement network monitoring for RDP connections that exhibit high volumes of RAIL window operations
  • Track FreeRDP version deployments to identify systems running vulnerable versions prior to 3.23.0

How to Mitigate CVE-2026-25954

Immediate Actions Required

  • Update FreeRDP to version 3.23.0 or later immediately
  • If immediate patching is not possible, disable RAIL support when connecting to untrusted RDP servers
  • Review and restrict which RDP servers users are permitted to connect to
  • Audit systems for deployed FreeRDP versions and prioritize updates

Patch Information

FreeRDP version 3.23.0 addresses this vulnerability by implementing proper hash table locking around window object access. The fix ensures that when accessing window objects from the railWindows hash table, the table is locked to prevent concurrent modification by other threads. The patch introduces HashTable_Lock and HashTable_Unlock calls in the affected code paths and adds a new xf_rail_return_window function to properly release window references.

The security fix can be reviewed in FreeRDP Commit 1994e98. Additional technical details are available in the GitHub Security Advisory GHSA-cc88-4j37-mw6j.

Workarounds

  • Disable RAIL functionality by using the /RemoteApp:0 option when connecting via FreeRDP
  • Avoid connecting to untrusted or unknown RDP servers with RAIL support enabled
  • Use network-level controls to restrict RDP connections to known trusted servers only
  • Consider using alternative RDP clients until FreeRDP can be updated
bash
# Configuration example - Disable RAIL when connecting to RDP servers
# Use the -RemoteApp or /RemoteApp option to disable RAIL functionality
xfreerdp /v:server.example.com /u:username /RemoteApp:0

# Alternatively, compile FreeRDP without RAIL support
cmake -DWITH_RAIL=OFF /path/to/freerdp/source
make && make install

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

  • Vulnerability Details
  • TypeUse After Free

  • Vendor/TechFreerdp

  • SeverityMEDIUM

  • CVSS Score5.5

  • EPSS Probability0.05%

  • Known ExploitedNo
  • CVSS Vector
  • CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/E:P/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
  • Impact Assessment
  • ConfidentialityLow
  • IntegrityNone
  • AvailabilityLow
  • CWE References
  • CWE-416
  • Technical References
  • FreeRDP Code Review Line 1076

  • FreeRDP Code Review Line 1133

  • FreeRDP Code Review Lines 1230-1238

  • FreeRDP Code Review Line 1347

  • FreeRDP Code Review Lines 1350-1359

  • FreeRDP Code Review Line 647

  • FreeRDP Commit 1994e98

  • GitHub Security Advisory GHSA-cc88-4j37-mw6j
  • Related CVEs
  • CVE-2026-33995: FreeRDP Use-After-Free Vulnerability

  • CVE-2026-31897: FreeRDP Use-After-Free Vulnerability

  • CVE-2026-25959: FreeRDP Use After Free Vulnerability

  • CVE-2026-25955: FreeRDP Use-After-Free Vulnerability
Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the World’s Most Advanced Cybersecurity Platform

See how our intelligent, autonomous cybersecurity platform can protect your organization now and into the future.

Try SentinelOne
  • Get Started
  • Get a Demo
  • Product Tour
  • Why SentinelOne
  • Pricing & Packaging
  • FAQ
  • Contact
  • Contact Us
  • Customer Support
  • SentinelOne Status
  • Language
  • Platform
  • Singularity Platform
  • Singularity Endpoint
  • Singularity Cloud
  • Singularity AI-SIEM
  • Singularity Identity
  • Singularity Marketplace
  • Purple AI
  • Services
  • Wayfinder TDR
  • SentinelOne GO
  • Technical Account Management
  • Support Services
  • Verticals
  • Energy
  • Federal Government
  • Finance
  • Healthcare
  • Higher Education
  • K-12 Education
  • Manufacturing
  • Retail
  • State and Local Government
  • Cybersecurity for SMB
  • Resources
  • Blog
  • Labs
  • Case Studies
  • Videos
  • Product Tours
  • Events
  • Cybersecurity 101
  • eBooks
  • Webinars
  • Whitepapers
  • Press
  • News
  • Ransomware Anthology
  • Company
  • About Us
  • Our Customers
  • Careers
  • Partners
  • Legal & Compliance
  • Security & Compliance
  • Investor Relations
  • S Foundation
  • S Ventures

©2026 SentinelOne, All Rights Reserved.

Privacy Notice Terms of Use

English