IPBUF安全漏洞报告
English
CVE-2026-40254 CVSS 4.2 中危

CVE-2026-40254 FreeRDP路径遍历漏洞

披露日期: 2026-04-24

漏洞信息

漏洞编号
CVE-2026-40254
漏洞类型
路径遍历
CVSS评分
4.2 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
FreeRDP

相关标签

路径遍历FreeRDPRDP信息泄露

漏洞概述

FreeRDP在3.25.0之前的版本中存在路径遍历漏洞。由于`contains_dotdot()`函数未能正确处理路径末尾的`..`组件,攻击者可诱导受害者连接恶意RDP服务器。在启用驱动重定向的情况下,攻击者可绕过安全限制,读取、列出或写入客户端共享文件夹上一级目录的文件。

技术细节

该漏洞位于`channels/drive/client/drive_file.c`文件中的路径遍历过滤逻辑。原函数通过检查`../`或`..\`来防止目录穿越,但存在逻辑盲区:当`..`作为路径的最后一个组件且没有尾随分隔符时(例如`folder/..`),校验函数会返回False,导致路径通过验证。攻击者利用此漏洞,需搭建恶意RDP服务器。当受害者使用受影响版本的FreeRDP客户端连接并开启驱动重定向时,攻击者通过发送特制的RDPDR请求,即可访问受限制的父目录,造成信息泄露或文件篡改。

攻击链分析

STEP 1
1. 环境准备
攻击者搭建一个恶意的RDP服务器,配置用于监听连接。
STEP 2
2. 诱导连接
攻击者诱导受害者使用FreeRDP客户端连接到该恶意服务器,并确保受害者启用了驱动重定向功能。
STEP 3
3. 发送恶意请求
建立连接后,攻击者通过RDPDR通道发送特制的文件路径请求,该路径包含作为末尾组件的`..`(例如`folder/..`)。
STEP 4
4. 绕过校验
FreeRDP客户端的`contains_dotdot()`函数未能检测到路径末尾的`..`,允许该请求通过。
STEP 5
5. 执行攻击
客户端处理请求,访问共享目录父目录的文件,并将内容返回给攻击者,或允许攻击者写入文件。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import os # Simulates the vulnerable logic in FreeRDP's contains_dotdot() def vulnerable_check(path): # The original code checks for substrings "../" or "..\\" # It fails to catch ".." at the end of a path component. if "../" in path or "..\\" in path: return False # Blocked return True # Allowed # Attack Scenario: Malicious server requests a file path # The attacker wants to access the parent directory of the shared folder. # Shared folder is at '/home/user/shared', attacker wants '/home/user'. payloads = [ "normal_file.txt", "../../etc/passwd", # Standard traversal, usually caught "subfolder/..", # The specific bypass case: .. at the end "subfolder/../secret.txt" # Caught because of trailing slash after .. ] print(f"{'Payload':<25} | {'Vulnerable Check':<18} | {'Status'}") print("-" * 60) for p in payloads: is_allowed = vulnerable_check(p) status = "ALLOWED (VULNERABLE)" if is_allowed and ".." in p else ("BLOCKED" if ".." in p else "ALLOWED (Safe)") print(f"{p:<25} | {str(is_allowed):<18} | {status}")

影响范围

FreeRDP < 3.25.0

防御指南

临时缓解措施
若无法立即升级,用户应避免连接不可信的RDP服务器,或在连接配置中关闭资源重定向(特别是磁盘映射),以防止恶意服务器访问本地文件系统。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表