# FreeRDP 基础加密缓冲区溢出漏洞
## 概述
FreeRDP 在 Base64 解码路径中存在全局缓冲区溢出漏洞,由 `char` 类型的符号性实现差异引发。
## 影响版本
3.20.1 之前版本
## 细节
在 Arm/AArch64 架构中,`char` 类型默认为无符号(unsigned),导致条件判断 `c <= 0` 被优化为 `c != 0`。该优化使得非 ASCII 字节(0x80–0xFF)可绕过范围检查,作为索引访问全局查找表,引发越界访问。
## 影响
攻击者可能利用该漏洞触发全局缓冲区溢出,导致内存破坏,进而引发程序崩溃或潜在的远程代码执行。
是否为 Web 类漏洞: 未知
判断理由:
| # | POC 描述 | 源链接 | 神龙链接 |
|---|
标题: Release 3.20.1 · FreeRDP/FreeRDP · GitHub -- 🔗来源链接
标签:x_refsource_MISC
神龙速读:
以下是关于漏洞的关键信息:
- **CVEs Identified**:
- CVE-2026-22851
- CVE-2026-22852
- CVE-2026-22853
- CVE-2026-22854
- CVE-2026-22855
- CVE-2026-22856
- CVE-2026-22857
- CVE-2026-22858
- CVE-2026-22859
- **Affected Components**:
- All vulnerabilities except CVE-2026-22858 impact FreeRDP based clients only.
- CVE-2026-22858 also impacts FreeRDP proxy.
- FreeRDP based servers are not affected.
- **Vulnerabilities Severity**:
- All listed vulnerabilities are of medium severity.
- **Contributors**:
- @ehdgks0627 was acknowledged for uncovering these vulnerabilities through code review and testing.
标题: Global-buffer-overflow in crypto_base64_decode · Advisory · FreeRDP/FreeRDP · GitHub -- 🔗来源链接
标签:x_refsource_CONFIRM
神龙速读:
### 关键漏洞信息
#### 漏洞概述
- **漏洞名称**: Global-buffer-overflow in crypto_base64_decode
- **严重性**: Moderate
- **CVE ID**: CVE-2026-22858
#### 受影响和修复版本
- **受影响版本**: <= 3.20.0
- **修复版本**: 3.20.1
#### 漏洞描述
在对RDP进行模糊测试期间,在FreeRDP的Base64解码路径中观察到一个ASan全局缓冲区溢出。根本原因是实现定义的 `char` 有符号性:
- 在Arm/AArch64构建中,普通的 `char` 被视为无符号,因此 `c <= 0` 可以优化为简单的 `c != 0` 检查。
- 这导致非ASCII字节(例如,0x80-0xFF)可能绕过预期的范围限制,并作为全局查找表的索引,导致越界访问。
#### 漏洞细节
- **源代码中的预期范围检查**: 条件 `c <= 0` 旨在约束 `char c` 在 1..127 范围内,防止负值和NUL('\0')被用作Base64解码表的索引。
- **ASan症状**: ASan日志表明存在全局缓冲区溢出,这与对全局查找表的越界访问一致。
- **汇编指示防护措施被简化为 `c != 0` 检查**: 在生成的AArch64汇编中,条件被简化为非零比较。
- **ARM特定性质**: `char` 的有符号性是实现定义的,Arm系统通常将其视为无符号。
#### 影响
- 恶意服务器可能触发客户端全局缓冲区溢出,导致崩溃(DoS)。
#### 影响范围
- FreeRDP 基于客户端
- FreeRDP 代理(在负载均衡服务器设置中处理重定向)
#### 修复建议
1. 明确强制有符号比较。
2. 提供或强制编译器选项,以在构建中强制一致的 `char` 有符号性。
Zaproxy alias impedit expedita quisquam pariatur exercitationem. Nemo rerum eveniet dolores rem quia dignissimos.