CVE-2026-67306:
Wolfi 취약성 분석 및 완화
개요
CVE-2026-67306 is an out-of-bounds read vulnerability in the RDP6 planar RLE bitmap decoder of FreeRDP, affecting versions 3.28.0 and earlier. The flaw resides in the planar_decompress_plane_rle and planar_decompress_plane_rle_only functions within libfreerdp/codec/planar.c. It was discovered via fuzzing, confirmed with AddressSanitizer, and publicly disclosed on August 1, 2026, with a fix available in FreeRDP 3.29.0. The vulnerability carries a CVSS v3.1 base score of 5.4 (Medium) and a CVSS v4.0 base score of 5.3 (Medium) (GitHub Advisory, FreeRDP Advisory).
기술적 세부 사항
The root cause is an insufficient bounds check (CWE-125: Out-of-bounds Read) in the RDP6 planar RLE decoder. The decoder validates only the 1-byte control byte (check A) and the destination scanline capacity (check B), but never verifies that the source buffer contains the 0–15 additional raw bytes declared by the attacker-controlled cRawBytes field extracted from the control byte. When a malicious or compromised RDP server sends a truncated planar-encoded bitmap — for example, a single control byte 0xF0 declaring 15 raw bytes against a 1-byte source buffer — the raw-byte read loop (check C) proceeds unconditionally past the end of the source buffer. The vulnerability is reachable post-connection via both the classic Bitmap Update PDU path and the RDPGFX Surface Command path (gdi_SurfaceCommand() → gdi_SurfaceCommand_Planar() → freerdp_bitmap_decompress_planar() → planar_decompress_plane_rle()). The sibling function planar_skip_plane_rle() in the same file correctly validates the full claimed length before reading, confirming this is an implementation inconsistency (FreeRDP Advisory).
영향
Successful exploitation allows a malicious or compromised RDP server to cause the FreeRDP client to read memory beyond the bounds of the source buffer, resulting in potential disclosure of sensitive client-side memory contents and/or a client application crash (DoS). The vulnerability is a read-only primitive — no out-of-bounds write is associated with this specific bug — so integrity of the client system is not directly affected. The most likely outcome is a client crash on an unmapped-page hit, with memory disclosure dependent on the memory layout at the time of exploitation (FreeRDP Advisory, GitHub Advisory).
착취 단계
- Set up a malicious RDP server: The attacker operates or compromises an RDP server reachable by the target FreeRDP client (e.g., via a rogue server, man-in-the-middle, or server compromise).
- Lure the victim to connect: Social engineering or network-level redirection is used to cause the FreeRDP client (version ≤ 3.28.0) to initiate an RDP session to the attacker-controlled server.
- Craft a malicious planar-encoded bitmap update: After the RDP session is established, the server sends a crafted Bitmap Update PDU or RDPGFX Surface Command containing a truncated planar-encoded bitmap. A minimal trigger is a single control byte
0xF0(declaringcRawBytes=15,nRunLength=0) with a source buffer of only 1 byte. - Trigger the out-of-bounds read: The FreeRDP client's
planar_decompress_plane_rle()function passes the control byte bounds check but then attempts to read 15 additional bytes from the 1-byte buffer, causing an out-of-bounds read in the raw-byte loop. - Achieve impact: Depending on memory layout, the client process crashes (DoS) or adjacent memory contents are read, potentially disclosing sensitive data from the client's process memory (FreeRDP Advisory).
타협의 징후
- Network: Unusual or unexpected RDP connections from client systems to unknown or untrusted RDP server IP addresses; malformed RDP Bitmap Update PDUs or RDPGFX Surface Commands with anomalously short planar-encoded bitmap payloads.
- Logs: FreeRDP client logs containing
WLog_ERRmessages such as"error reading input buffer"fromlibfreerdp/codec/planar.c; application crash reports or core dumps originating from the FreeRDP process during an active RDP session. - Process: Unexpected termination (crash) of the FreeRDP client process (
xfreerdp,wfreerdp, or embedded FreeRDP-based applications) immediately after connecting to an RDP server or receiving a bitmap/surface update.
완화 및 해결 방법
The primary remediation is to upgrade FreeRDP to version 3.29.0 or later, which includes the fix for this vulnerability (GitHub Advisory, FreeRDP Advisory). The fix adds a source-buffer bounds check for cRawBytes before the raw-byte read loop: if (cur + 1ull + cRawBytes > SrcSize) { return -1; }, applied to both planar_decompress_plane_rle() and planar_decompress_plane_rle_only(). As a workaround where immediate patching is not possible, restrict FreeRDP client connections to trusted, known-good RDP servers only, and monitor or filter suspicious RDP traffic at network boundaries.
커뮤니티 반응
The vulnerability was reported by researcher HEXER365 and published by FreeRDP maintainer akallabeth via a GitHub Security Advisory on July 15, 2026, with the CVE formally published on August 1, 2026. The advisory notes the finding was discovered via fuzzing and independently re-verified using an isolated harness, reflecting a rigorous disclosure process. No significant broader media coverage or notable community commentary beyond the official advisory has been identified at this time (FreeRDP Advisory).
추가 자료
근원: 이 보고서는 AI를 사용하여 생성되었습니다.
관련 Wolfi 취약점:
무료 취약성 평가
클라우드 보안 태세를 벤치마킹합니다
9개의 보안 도메인에서 클라우드 보안 관행을 평가하여 위험 수준을 벤치마킹하고 방어의 허점을 식별합니다.
추가 Wiz 리소스
맞춤형 데모 받기
맞춤형 데모 신청하기
"내가 본 최고의 사용자 경험은 클라우드 워크로드에 대한 완전한 가시성을 제공합니다."
"Wiz는 클라우드 환경에서 무슨 일이 일어나고 있는지 볼 수 있는 단일 창을 제공합니다."
"우리는 Wiz가 무언가를 중요한 것으로 식별하면 실제로 중요하다는 것을 알고 있습니다."