# FreeRDP 堆栈缓冲区溢出漏洞
## 概述
FreeRDP 在 RDPGFX ClearCodec 解码路径中存在客户端堆缓冲区溢出漏洞,由恶意构造的残留数据引发。
## 影响版本
受影响版本为 3.21.0 之前的所有版本。
## 细节
该漏洞位于 RDPGFX ClearCodec 的解码过程中,当处理恶意服务器发送的特制数据时,导致在颜色输出阶段发生越界写入,从而触发堆缓冲区溢出。
## 影响
恶意服务器可利用此漏洞导致客户端崩溃(拒绝服务),并可能引发堆内存 corruption,在特定堆布局和内存分配器行为下存在远程代码执行风险。
是否为 Web 类漏洞: 未知
判断理由:
| # | POC 描述 | 源链接 | 神龙链接 |
|---|
标题: Release 3.21.0 · FreeRDP/FreeRDP · GitHub -- 🔗来源链接
标签:x_refsource_MISC
神龙速读:
- **Version**: 3.21.0
- **Release Notes**: Bugfix release with new API functions for input data validation improvements.
- **Fixed Vulnerabilities**: CVE-2026-23530, CVE-2026-23531, CVE-2026-23532, CVE-2026-23533, CVE-2026-23534, CVE-2026-23732, CVE-2026-23883, CVE-2026-23884. (Medium client-side vulnerabilities)
- **Contributor**: ehdgks0627
- **Changes**: Includes fixes for various issues, such as monitor resolution, RPCX upgrades, krb cache, RDPDR checks, codec length checks, glyph length checks, format string checks and warnings, double free errors, and code warnings cleanup.
标题: Heap-buffer-overflow in clear_decompress_residual_data · Advisory · FreeRDP/FreeRDP · GitHub -- 🔗来源链接
标签:x_refsource_CONFIRM
神龙速读:
## 漏洞关键信息
- **漏洞类型**: Heap Buffer Overflow
- **漏洞名称**: Heap-buffer-overflow in clear_decompress_residual_data
- **CVE ID**: CVE-2026-23533
- **严重性**: Moderate
- **影响版本**: <= 3.20.2
- **修复版本**: 3.21.0
- **软件包**: FreeRDP
### 描述
- **摘要**: 在RDPGFX ClearCodec解码路径中,恶意制作的残留数据会导致堆缓冲区溢出,造成越界写入。
- **详细信息**:
- 触发崩溃的场景是在处理`WIRE_TO_SURFACE_PDU_1`时,该路径进入了`rdpgfx_rdcv_wire_to_surface_1_pdu` => `rdpgfx_decode` => ClearCodec路径。
- 服务器可以控制`nWidth`和`nHeight`,最大值为0xFFFF。
- 在`clear_resize_buffer`中,缓冲区大小计算可能会溢出,导致分配的缓冲区过小,边界检查无效。
- 循环迭代到`runLengthFactor`,可能导致越界写,触发溢出。
### 代码片段
- **问题代码**:
```c
Line 336 in 38514df
size = ((width + 16) * (height + 16) * FreeRDIGetBytesPerPixel(clear->format));
```
- **溢出风险代码**:
```c
Lines 268 to 281 in 38514df
for (UINT32 i = 0; i < runLengthFactor; i++) {
// ...
FreeRDWriteColor(pTmpData, DstFormat, color);
// ...
}
```
### 建议修复
- 将`size`和`clear->TempSize`设为UINT64类型,避免计算过程中的溢出。
### 影响
- 恶意服务器可能触发客户端堆缓冲区溢出,导致崩溃(DoS)。
- 有代码执行风险,取决于分配器行为和堆布局。
标题: FreeRDP/libfreerdp/codec/clear.c at 38514dfa5813aa945a86cfbcec279033f8394468 · FreeRDP/FreeRDP · GitHub -- 🔗来源链接
标签:x_refsource_MISC
标题: FreeRDP/libfreerdp/codec/clear.c at 38514dfa5813aa945a86cfbcec279033f8394468 · FreeRDP/FreeRDP · GitHub -- 🔗来源链接
标签:x_refsource_MISC
暂无评论