CVE-2026-121386: 
NixOS 脆弱性分析と緩和策

概要

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

技術的詳細

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

影響

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

利用可能性

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

エクスプロイテーションのステップ

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

妥協の兆候

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

緩和策と回避策

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

コミュニティの反応

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.

追加リソース

Linuxディストリビューションの修正状況

主要なLinuxディストリビューションとそのリリース間での可用性を修正しましょう。

Debian

影響

bookworm

freerdp2

影響

sid

freerdp3: 3.32.2+dfsg-1

修正済

trixie

freerdp3

影響

Ubuntu

不明

bionic (esm-apps)

freerdp

不明

bionic (esm-infra)

freerdp2

不明

devel

freerdp3

不明

focal (esm-infra)

freerdp2

不明

jammy

freerdp2

不明

noble

freerdp2

不明

noble (esm-apps)

freerdp2

不明

resolute

freerdp3

不明

RHEL / CentOS

修正済

RHEL 8

freerdp.src

影響

RHEL 9

freerdp.src

影響

RHEL 10

freerdp-2:3.32.2-1.el10_2.src

修正済

ソース: この報告書はAIを用いて作成されました

関連 NixOS 脆弱性:

CVE ID

重大度

スコア

テクノロジー

コンポーネント名

CISA KEVのエクスプロイト

修正あり

出版日

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

無料脆弱性評価

クラウドセキュリティの姿勢をベンチマークしましょう

9つのセキュリティ領域にわたるクラウドセキュリティの実践を評価し、リスクレベルをベンチマークし、防御のギャップを特定しましょう。

評価のリクエスト

Wizのその他のリソース

パーソナライズされたデモを見る

実際に Wiz を見てみませんか?​

"私が今まで見た中で最高のユーザーエクスペリエンスは、クラウドワークロードを完全に可視化します。"
デビッド・エストリックCISO (最高情報責任者)
"Wiz を使えば、クラウド環境で何が起こっているかを 1 つの画面で確認することができます"
アダム・フレッチャーチーフ・セキュリティ・オフィサー
"Wizが何かを重要視した場合、それは実際に重要であることを私たちは知っています。"
グレッグ・ポニャトフスキ脅威および脆弱性管理責任者