CVE-2026-121386: 
NixOS analisi e mitigazione delle vulnerabilità

Panoramica

CVE-2026-121386 is a denial-of-service vulnerability in FreeRDP's WinPR image processing functions winpr_read_png_from_buffer() and winpr_convert_from_jpeg(), which lack proper libpng/libjpeg error handling. A malicious RDP server or man-in-the-middle (MITM) attacker can deliver a malformed PNG or truncated JPEG clipboard payload to cause the FreeRDP client to abort (SIGABRT) or exit. All FreeRDP versions before 3.32.2 are affected; the vulnerability was disclosed on November 3, 2026. It carries a CVSS v3.1 score of 7.5 (High) and a CVSS v4.0 score of 8.7 (High) (GitHub Advisory, FreeRDP Advisory).

Dettagli tecnici

The root cause is classified as CWE-248 (Uncaught Exception): two image reader functions in winpr/libwinpr/utils/image.c fail to install the error-handling contexts required by their underlying libraries for untrusted input. In winpr_read_png_from_buffer(), libpng structs are created and png_read_png() is called without a setjmp(png_jmpbuf(png_ptr)) handler; when libpng encounters a malformed PNG, its default error handler calls png_longjmp() with no jump target, triggering abort() (SIGABRT). In winpr_convert_from_jpeg(), jpeg_std_error() is used without overriding error_exit, so libjpeg's default handler calls exit(EXIT_FAILURE) directly on any library error, bypassing all goto fail cleanup paths. Both functions are reachable via winpr_image_read_buffer() in the clipboard synthesis path (winpr/libwinpr/clipboard/synthetic.c), meaning any RDP server or MITM controlling clipboard content can trigger the crash with as few as 12 bytes (PNG) or 62 bytes (JPEG) of crafted data (FreeRDP Advisory).

Impatto

Successful exploitation causes the FreeRDP client process to terminate abruptly — either via SIGABRT (PNG case) or exit(EXIT_FAILURE) (JPEG case) — resulting in a complete loss of the RDP session and any unsaved state in co-operating local applications. The impact is limited to availability; there is no confidentiality or integrity compromise, and no memory corruption or code execution is possible. An attacker who can repeatedly offer malformed clipboard payloads can keep the client persistently unusable (FreeRDP Advisory, GitHub Advisory).

Sfruttabilità

No public proof-of-concept exploit code has been observed, and there is no evidence of in-the-wild exploitation at this time (GitHub Advisory). The vulnerability was discovered and reported with AI assistance using a libFuzzer harness (FuzzImage.c); libFuzzer found the PNG abort within 55 executions using a 12-byte input. The EPSS score is 0.0, and the vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. No threat actor attribution is available. The attack requires no authentication, no user interaction, and no special privileges — only the ability to act as or intercept an RDP server connection (FreeRDP Advisory).

Fasi di sfruttamento

  1. Establish attacker-controlled RDP server or MITM position: Set up a rogue RDP server (e.g., using a custom RDP implementation) or position the attacker between the FreeRDP client and a legitimate server to intercept and modify RDP traffic.
  2. Wait for or trigger clipboard format negotiation: When the FreeRDP client connects, the RDP protocol allows the server to advertise clipboard formats. The attacker advertises an image clipboard format (e.g., image/png or image/jpeg) to the client.
  3. Deliver malformed image payload: When the client requests the clipboard data, respond with a crafted malformed payload — for example, a 12-byte truncated PNG (iVBORw0KGgoAAAAA decoded from base64) or a 62-byte truncated JPEG (/9j/4AAQSkZJRgAB... decoded from base64).
  4. Trigger client crash: The FreeRDP client passes the attacker-supplied bytes to winpr_image_read_buffer(), which routes them to winpr_read_png_from_buffer() or winpr_convert_from_jpeg(). Due to missing error handlers, libpng calls abort() (SIGABRT) or libjpeg calls exit(EXIT_FAILURE), terminating the client process.
  5. Repeat for persistent DoS: Re-offer the malformed clipboard format each time the client reconnects to keep the session persistently unavailable (FreeRDP Advisory).

Indicatori di compromissione

  • Process: FreeRDP client process (xfreerdp, wlfreerdp, or similar) terminating unexpectedly with signal 6 (SIGABRT) or exit code from exit(EXIT_FAILURE) shortly after clipboard interaction with an RDP server.
  • Logs: System logs (e.g., /var/log/syslog, journalctl) showing Aborted (core dumped) or abnormal termination of the FreeRDP process; libpng error messages such as libpng error: bad adaptive filter value preceding the crash.
  • Network: RDP clipboard channel traffic (CLIPRDR virtual channel) containing unusually small or malformed image payloads (e.g., PNG magic bytes 89 50 4E 47 followed by fewer than expected bytes, or JPEG magic FF D8 FF with truncated data) from the server to the client.
  • File System: Core dump files generated in the FreeRDP working directory or system core dump location following unexpected process termination (FreeRDP Advisory).

Mitigazione e soluzioni alternative

Upgrade FreeRDP to version 3.32.2 or later, which includes the fix adding proper setjmp/longjmp error handling to both winpr_read_png_from_buffer() and winpr_convert_from_jpeg(), as well as winpr_convert_to_jpeg() (FreeRDP Advisory, GitHub Advisory). As a workaround where upgrading is not immediately possible, restrict FreeRDP client connections to trusted, verified RDP servers only, and use secure network channels (VPN or TLS) to prevent MITM attacks that could deliver malicious clipboard payloads. Note that builds using WITH_LODEPNG (instead of libpng) are not affected by the PNG case, as lodepng returns error codes rather than calling abort().

Reazioni della comunità

Red Hat has filed a high-severity bug report (Bugzilla #2565870) tracking the vulnerability for affected Red Hat and Fedora packages (Red Hat Bugzilla). The original advisory was submitted to the FreeRDP project with AI assistance and included a detailed fuzzing harness and patch, reflecting growing use of automated vulnerability discovery tools in open-source security research (FreeRDP Advisory). No significant broader media coverage or notable social media commentary has been observed at this time.

Risorse aggiuntive

Stato delle patch per la distribuzione Linux

Disponibilità delle patch per le principali distribuzioni Linux e relative versioni.

Debian

Interessato

bookworm

freerdp2

Interessato

sid

freerdp3: 3.32.2+dfsg-1

Risolto

trixie

freerdp3

Interessato

Ubuntu

Sconosciuto

bionic (esm-apps)

freerdp

Sconosciuto

bionic (esm-infra)

freerdp2

Sconosciuto

devel

freerdp3

Sconosciuto

focal (esm-infra)

freerdp2

Sconosciuto

jammy

freerdp2

Sconosciuto

noble

freerdp2

Sconosciuto

noble (esm-apps)

freerdp2

Sconosciuto

resolute

freerdp3

Sconosciuto

RHEL / CentOS

Risolto

RHEL 8

freerdp.src

Interessato

RHEL 9

freerdp.src

Interessato

RHEL 10

freerdp-2:3.32.2-1.el10_2.src

Risolto

Fonte: Questo report è stato generato tramite IA

Vulnerabilità correlate di NixOS:

CVE ID

Gravità

Punteggio

Tecnologie

Nome del componente

Exploit CISA KEV

Dispone di patch

Data di pubblicazione

CVE-2026-121964HIGH8.7
  • NixOS logoNixOS
  • freerdp3
NoSìNov 04, 2026
CVE-2026-121960HIGH8.7
  • NixOS logoNixOS
  • freerdp2
NoSìNov 04, 2026
CVE-2026-121963HIGH8.2
  • NixOS logoNixOS
  • freerdp
NoSìNov 04, 2026
CVE-2026-121961HIGH8.2
  • NixOS logoNixOS
  • freerdp
NoSìNov 04, 2026
CVE-2026-121962HIGH7.2
  • NixOS logoNixOS
  • freerdp2
NoSìNov 04, 2026

Valutazione gratuita delle vulnerabilità

Valuta la tua postura di sicurezza del cloud

Valuta le tue pratiche di sicurezza del cloud in 9 domini di sicurezza per stabilire un benchmark del tuo livello di rischio e identificare le lacune nelle tue difese.

Richiedi valutazione

Ulteriori risorse Wiz

Richiedi una demo personalizzata

Pronti a vedere Wiz in azione?

"La migliore esperienza utente che abbia mai visto offre piena visibilità ai carichi di lavoro cloud."
David EstlickCISO (CISO)
"Wiz fornisce un unico pannello di controllo per vedere cosa sta succedendo nei nostri ambienti cloud."
Adam FletcherResponsabile della sicurezza
"Sappiamo che se Wiz identifica qualcosa come critico, in realtà lo è."
Greg PoniatowskiResponsabile della gestione delle minacce e delle vulnerabilità