CVE-2026-55191
Received Received - Intake

Out-of-Bounds Write in FreeRDP H.264 Decoder

Vulnerability report for CVE-2026-55191, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-08-19

Last updated on: 2026-08-19

Assigner: GitHub, Inc.

Description

FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to 3.27.0, FreeRDP clients that negotiate RDPGFX AVC444 with an H.264 decoder backend calculate the intermediate YUV444 allocation size in libfreerdp/codec/h264.c with 32-bit multiplication in avc444_ensure_buffer. A malicious RDP server can supply surface dimensions for which piDstStride multiplied by padDstHeight wraps to a small nonzero value, causing winpr_aligned_recalloc to allocate an undersized buffer before YUV420CombineToYUV444 writes using the actual stride and rectangle dimensions. This can cause a client crash and may permit code execution through attacker-influenced heap corruption. This issue is fixed in version 3.27.0.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-08-19
Last Modified
2026-08-19
Generated
2026-08-19
AI Q&A
2026-08-19
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 2 associated CPEs
Vendor Product Version / Range
freerdp freerdp to 3.27.0 (exc)
freerdp freerdp 3.27.0

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-190 The product performs a calculation that can produce an integer overflow or wraparound when the logic assumes that the resulting value will always be larger than the original value. This occurs when an integer value is incremented to a value that is too large to store in the associated representation. When this occurs, the value may become a very small or negative number.
CWE-122 A heap overflow condition is a buffer overflow, where the buffer that can be overwritten is allocated in the heap portion of memory, generally meaning that the buffer was allocated using a routine such as malloc().

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

CVE-2026-55191 is a heap-buffer-overflow vulnerability in FreeRDP's AVC444 YUV buffer allocation. It occurs in the H.264 codec when calculating buffer sizes using 32-bit arithmetic. A malicious RDP server can provide surface dimensions that cause the buffer size calculation to wrap around to a small value, leading to an undersized buffer allocation. Subsequent operations then write beyond this buffer, causing a heap overflow.

Detection Guidance

Detecting this vulnerability requires checking FreeRDP version and monitoring for crashes during RDP sessions with AVC444 H.264 decoding enabled. Use 'xfreerdp --version' to verify if your client is vulnerable (<=3.26.0). Enable AddressSanitizer or similar tools during compilation to catch heap overflows during decompression.

Impact Analysis

This vulnerability can cause FreeRDP clients to crash, leading to denial of service. In some cases, it may allow code execution through heap corruption. Attackers can exploit it by providing malicious surface dimensions and H.264 content when AVC444 is negotiated and H.264 decoder backend is enabled.

Compliance Impact

This vulnerability could lead to unauthorized code execution or data corruption on systems handling sensitive data, potentially violating GDPR's integrity and confidentiality requirements or HIPAA's security rules for protected health information. The heap corruption risk may allow attackers to access or manipulate sensitive session data during remote desktop sessions.

Mitigation Strategies

Upgrade FreeRDP to version 3.27.0 or later immediately. Disable AVC444 H.264 decoding in client configurations if possible. Block untrusted RDP servers until patched. Monitor for crashes in RDP sessions as potential exploitation attempts.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-55191. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart