CVE-2026-121386: 
NixOS Análise e mitigação de vulnerabilidades

Visão geral

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).

Detalhes técnicos

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).

Impacto

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).

Explorabilidade

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).

Etapas de exploração

  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).

Indicadores de compromisso

  • 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).

Mitigação e soluções alternativas

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().

Reações da comunidade

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.

Recursos adicionais

Status correto da distribuição Linux

Corrija a disponibilidade entre as principais distribuições Linux e seus lançamentos.

Debian

Afetado

bookworm

freerdp2

Afetado

sid

freerdp3: 3.32.2+dfsg-1

Fixo

trixie

freerdp3

Afetado

Ubuntu

Desconhecido

bionic (esm-apps)

freerdp

Desconhecido

bionic (esm-infra)

freerdp2

Desconhecido

devel

freerdp3

Desconhecido

focal (esm-infra)

freerdp2

Desconhecido

jammy

freerdp2

Desconhecido

noble

freerdp2

Desconhecido

noble (esm-apps)

freerdp2

Desconhecido

resolute

freerdp3

Desconhecido

RHEL / CentOS

Fixo

RHEL 8

freerdp.src

Afetado

RHEL 9

freerdp.src

Afetado

RHEL 10

freerdp-2:3.32.2-1.el10_2.src

Fixo

Origem: Este relatório foi gerado usando IA

Relacionado NixOS Vulnerabilidades:

CVE ID

Gravidade

Pontuação

Tecnologias

Nome do componente

Exploit CISA KEV

Tem correção

Data de publicação

CVE-2026-121964HIGH8.7
  • NixOS logoNixOS
  • freerdp3
NãoSimNov 04, 2026
CVE-2026-121960HIGH8.7
  • NixOS logoNixOS
  • freerdp2
NãoSimNov 04, 2026
CVE-2026-121963HIGH8.2
  • NixOS logoNixOS
  • freerdp
NãoSimNov 04, 2026
CVE-2026-121961HIGH8.2
  • NixOS logoNixOS
  • freerdp
NãoSimNov 04, 2026
CVE-2026-121962HIGH7.2
  • NixOS logoNixOS
  • freerdp2
NãoSimNov 04, 2026

Avaliação Gratuita de Vulnerabilidades

Avalie a sua postura de segurança na nuvem

Avalie suas práticas de segurança em nuvem em 9 domínios de segurança para avaliar seu nível de risco e identificar lacunas em suas defesas.

Avaliação de solicitação

Recursos adicionais da Wiz

Marque uma demonstração personalizada

Pronto para ver a Wiz em ação?

"A melhor experiência do usuário que eu já vi, fornece visibilidade total para cargas de trabalho na nuvem."
David EstlickCISO
"A Wiz fornece um único painel de vidro para ver o que está acontecendo em nossos ambientes de nuvem."
Adam FletcherDiretor de Segurança
"Sabemos que se a Wiz identifica algo como crítico, na verdade é."
Greg PoniatowskiChefe de Gerenciamento de Ameaças e Vulnerabilidades