Skip to main content

FreeRDP CVE-2026-121386

| EUVDEUVD-2026-115918 HIGH
Uncaught Exception (CWE-248)
2026-11-03 VulnCheck GHSA-qrqm-xr33-jxpf
8.7
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Lure client to malicious or MITM'd RDP server
  2. Delivery
    Offer malformed PNG/truncated JPEG clipboard payload
  3. Exploit
    Client calls unguarded winpr_read_png_from_buffer/winpr_convert_from_jpeg
  4. Execution
    libpng abort() or libjpeg exit() fires
  5. Impact
    FreeRDP client process terminates (denial of service)

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Exception handling completeness
Exploitation Conditions

Exploitation requires a FreeRDP client built with the WINPR_UTILS_IMAGE_PNG and/or WINPR_UTILS_IMAGE_JPEG code paths enabled - the official deb-nightly (cmake-preload.cmake) and flatpak (com.freerdp.FreeRDP.json) packaging turn these ON, so stock packages are affected, but builds using WITH_LODEPNG are NOT affected by the PNG case because lodepng returns error codes. The attacker must be a malicious RDP server or a MITM on the session, and must get a malformed-image clipboard format (image/png or image/jpeg) offered and synthesized on the client; the crash occurs 'when the format is used,' implying the clipboard image path must actually be exercised rather than merely offered. Affected versions are FreeRDP <= 3.32.1; no client-side authentication is required by the attacker. The only complete fix stated is updating to 3.32.2.

Impact

Multiple signals point to a genuinely easy-to-trigger but strategically limited issue. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) and score of 8.7 are driven almost entirely by VA:H combined with network reach and no required privileges - confidentiality and integrity impact are both N, so the only outcome is availability loss (client process termination). This is a CWE-248 uncaught-exception DoS, not code execution: libpng's default handler reaches abort() (SIGABRT) and libjpeg's default error_exit calls exit(), killing the client. The vuln.today priority is this_week, consistent with a trivially reproducible remote crash (a 12-byte PNG or 62-byte JPEG suffices). However, it is NOT in CISA KEV and no EPSS probability was supplied in the input, so there is no evidence of active or widespread exploitation; impact is confined to crashing an individual client with no persistence, lateral movement, or data exposure. Net: a real, reportable remote DoS worth patching promptly, but the high CVSS overstates operational danger relative to RCE-class flaws - the ceiling is a crashed RDP client. One caveat to verify: the clipboard image conversion only runs 'when the format is used,' which can imply some client-side clipboard activity that the clean AV:N/UI:N vector does not reflect - verify trigger conditions against the advisory's reachability notes.

Exploit ScenarioDerived

A victim connects a FreeRDP client (built with PNG/JPEG image support, which the official deb-nightly and flatpak packaging enable) to an attacker-controlled RDP server, or an attacker holds a MITM position on an existing session. The server offers a malformed PNG or truncated JPEG as a clipboard image payload; when the client synthesizes that clipboard format it calls the unguarded WinPR image readers, and the underlying library aborts or exits, terminating the client. The GHSA advisory includes a libFuzzer harness and base64-encoded crash artifacts, so a public DoS proof-of-concept exists; the impact is denial of service only, not code execution.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Nov 03, 2026

Malformed PNG and JPEG image data delivered through the RDP clipboard path terminates FreeRDP client processes up to and including 3.32.1, because WinPR's image readers invoke libpng and libjpeg without the error-handling context those libraries require for untrusted input. A malicious RDP server, or a man-in-the-middle on a session, that offers a crafted image/png or image/jpeg clipboard format can make the client abort (SIGABRT) or call exit() as soon as the format is synthesized, yielding a clean client-side denial of service; a 12-byte PNG and a 62-byte truncated JPEG are sufficient. No client authentication is needed from the attacker, and the advisory publishes reproduction artifacts and a fuzzing harness alongside the source-level root cause, so the trigger is public; the issue is queued as a this_week priority rather than an emergency, and no KEV or EPSS signal was supplied with this report.

RemediationAI

Updating to FreeRDP 3.32.2 is the only complete fix identified in the available sources and addresses both readers, plus the equivalent error-handling gap in the JPEG writer; no fixed release existed at the time the source analysis was written, so confirm 3.32.2 is available in your channel before scheduling the upgrade, and treat any build pinned at 3.32.1 or earlier as exposed. The vendor advisory at https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-799q-hjgw-g55g and the VulnCheck advisory at https://www.vulncheck.com/advisories/freerdp-before-3.32.2-denial-of-service-via-winpr-png-jpeg-image-readers document the affected components. Where an immediate upgrade is not possible, the sources identify only one configuration-level scoping fact rather than a true workaround: rebuilding without libpng support via WITH_LODEPNG removes exposure to the PNG abort path (lodepng returns error codes), but the JPEG exit() path remains reachable whenever WINPR_UTILS_IMAGE_JPEG is enabled, so this narrowing does not close the issue and costs you the affected image functionality. Because the trigger is a malformed clipboard image offered by the RDP peer, exposure is limited to sessions where the client connects to an untrusted or interceptable RDP server, since exploitation requires the clipboard image synthesis path to actually be exercised and not merely advertised.

Affected VersionsENISA

FreeRDP 0 <3.32.2

Affected Packages

euvd freerdp fix: 3.32.2

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The flaw is a CWE-248 uncaught-exception case in WinPR's shared image utility layer (winpr/libwinpr/utils/image.c), reached from winpr/libwinpr/clipboard/synthetic.c via winpr_image_read_buffer() whenever the clipboard synthesis path converts a peer-supplied image format. Two independent library contracts are violated. In winpr_read_png_from_buffer() (image.c:1170, compiled when WINPR_UTILS_IMAGE_PNG is set), libpng's structs are created and png_read_png() is called without installing setjmp(png_jmpbuf(png_ptr)); libpng's default error handler routes through png_error() -> png_default_error() -> png_longjmp(), and with no jump target registered the process aborts. The same file's PNG writer (save_png_to_buffer, image.c:1092) does install the setjmp handler, which shows the reader was simply missed; image.c at tag 3.32.1 contains exactly one such setjmp, the writer's. In winpr_convert_from_jpeg() (image.c:857, WINPR_UTILS_IMAGE_JPEG), jpeg_std_error() is used without overriding error_exit, so libjpeg's default handler calls exit(EXIT_FAILURE) and never returns, making the function's goto fail cleanup paths unreachable for library errors. The same defect class exists in the JPEG writer winpr_convert_to_jpeg() (image.c:784), whose 'Set up the error handler' comment precedes only a jpeg_std_error call and whose fail label would call jpeg_finish_compress() after an error. Critically, the exposure depends on build configuration rather than on the FreeRDP version alone: the official deb-nightly packaging (cmake-preload.cmake, PNG+WEBP+JPEG ON) and the Flatpak manifest (PNG ON) enable these paths, so stock packages are affected, while builds using WITH_LODEPNG are not exposed to the PNG variant because lodepng returns error codes instead of longjmp/abort.

Know when Freerdp gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (VulnCheck) PRIMARY 8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
vuln.today AI 6.5 MEDIUM

Reachable remotely from a malicious/MITM RDP server (AV:N, PR:N) via a tiny malformed payload (AC:L), but the clipboard image path must be exercised on the client (UI:R); impact is crash-only, so C:N/I:N/A:H.

3.1 AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Nov 03, 2026 - 16:17 EUVD
CVE Published
Nov 03, 2026 - 14:27 cve.org
HIGH 8.7

DescriptionCVE.org

FreeRDP before 3.32.2 contains a denial of service vulnerability in WinPR's winpr_read_png_from_buffer() and winpr_convert_from_jpeg(), which lack libpng/libjpeg error handling. A malicious RDP server or MITM can offer a malformed PNG or truncated JPEG clipboard payload, causing the client to abort or exit.

Executive ViewAI

Why It Matters

CVE-2026-121386 is a high-severity denial-of-service vulnerability in FreeRDP client versions up to 3.32.1, where malformed images received via the RDP clipboard can crash the client process. This affects employees or contractors using FreeRDP to connect to remote desktops, particularly those connecting to untrusted or compromised RDP servers, potentially disrupting business operations for remote workers. Leadership should care because a malicious RDP server or man-in-the-middle can reliably crash the client with minimal effort, causing productivity loss and potential data exposure if sessions are interrupted.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations include disabling clipboard redirection for image formats (e.g., via FreeRDP settings or group policy), restricting connections to trusted RDP servers, and deploying network monitoring to detect malformed image clipboard traffic. Consider using alternative RDP clients with robust error handling.

Threat Intelligence Overview

Prevalence
High
de facto open-source RDP library embedded in many Linux/remote-desktop clients
Data Quality
3 sources
Confidence: Low

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS N/A
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
High

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

CVE-2026-25997 CRITICAL POC
9.8 Feb 25

Use-after-free in FreeRDP xf_clipboard_format_equal before 3.23.0. Clipboard format comparison uses freed memory. Fifth

CVE-2026-25953 CRITICAL POC
9.8 Feb 25

Use-after-free in FreeRDP xf_AppUpdateWindowFromSurface before 3.23.0. Surface-to-window update triggers memory corrupti

CVE-2026-25952 CRITICAL POC
9.8 Feb 25

Use-after-free in FreeRDP xf_SetWindowMinMaxInfo before version 3.23.0. X11 client window management triggers memory cor

CVE-2026-25959 CRITICAL POC
9.8 Feb 25

Use-after-free in FreeRDP xf_cliprdr_provide_data clipboard handling before 3.23.0. Clipboard data exchange triggers mem

CVE-2026-22857 CRITICAL POC
9.8 Jan 14

FreeRDP IRP thread handler has a use-after-free where the IRP is freed by Complete() then accessed on the error path. Fi

CVE-2026-22854 CRITICAL POC
9.8 Jan 14

FreeRDP drive read heap overflow when server-controlled read length exceeds IRP output buffer. Fixed in 3.20.1. PoC avai

CVE-2026-22852 CRITICAL POC
9.8 Jan 14

FreeRDP client before 3.20.1 has a heap buffer overflow in AUDIN format processing. A malicious RDP server can corrupt m

CVE-2026-25955 CRITICAL POC
9.8 Feb 25

Use-after-free in FreeRDP xf_AppUpdateWindowFromSurface before 3.23.0. Different code path from CVE-2026-25953. PoC and

CVE-2024-32041 CRITICAL POC
9.8 Apr 22

FreeRDP is a free implementation of the Remote Desktop Protocol. Rated critical severity (CVSS 9.8), this vulnerability

CVE-2023-40574 CRITICAL POC
9.8 Aug 31

FreeRDP is a free implementation of the Remote Desktop Protocol (RDP), released under the Apache license. Rated critical

CVE-2023-40569 CRITICAL POC
9.8 Aug 31

FreeRDP is a free implementation of the Remote Desktop Protocol (RDP), released under the Apache license. Rated critical

CVE-2023-40567 CRITICAL POC
9.8 Aug 31

FreeRDP is a free implementation of the Remote Desktop Protocol (RDP), released under the Apache license. Rated critical

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy