Skip to main content
Mallory
UnratedPublic exploit

HTTP/2 Bomb DoS in Apache HTTP Server mod_http2

IdentifiersCVE-2026-49975CWE-400

CVE-2026-49975 is a remote denial-of-service vulnerability in Apache HTTP Server's HTTP/2 implementation (mod_http2), disclosed as part of the "HTTP/2 Bomb" technique. The issue arises from chaining HPACK indexed-reference header compression abuse with HTTP/2 flow-control stalling to force disproportionate memory allocation and keep that memory pinned. In the Apache variant, the attack reportedly abuses Cookie header splitting permitted by RFC 9113 section 8.2.3; cookie crumbs were not counted against LimitRequestFields, allowing an attacker to submit large numbers of cookie fragments that trigger repeated reconstruction and retention of merged cookie strings. The result is excessive per-request/per-stream memory consumption from a low-bandwidth client, bypassing expected header-count protections in vulnerable configurations. Apache assigned CVE-2026-49975 and fixed the issue by making cookie headers count against LimitRequestFields; the fix is identified as mod_http2 v2.0.41 and was also committed to trunk on the day of disclosure.

Share:
For your environment

Are you exposed to this one?

Mallory correlates every CVE against your assets, your vendors, and active adversary campaigns. Know which vulnerabilities matter for you, not just which ones are loud.

ANALYST BRIEF

Impact, mitigation & remediation

What it means. What to do now. Patch path, mitigations, and the assume-compromise checklist.

Impact

What an attacker gets, and what they’ve been doing with it.

Successful exploitation causes severe memory exhaustion and service degradation or outage. The published research states that a single remote client can drive Apache httpd to hold roughly 32 GB of memory in about 18-20 seconds, potentially forcing the server into swap thrashing, worker exhaustion, or making the service inaccessible. The vulnerability is a denial-of-service issue; the provided content does not indicate code execution, privilege escalation, or data exposure.

Mitigation

If you can’t patch tonight, do this now.

If the fixed mod_http2 version cannot be deployed immediately, disable HTTP/2 for Apache and force HTTP/1.1 only (for example, using "Protocols http/1.1"). Additional partial mitigations mentioned in the source include enforcing hard header-count limits that include cookie crumbs, placing the service behind an HTTP/2 termination point or proxy that enforces strict per-request header-count caps, and bounding resource impact with process/container memory limits. The content notes that lowering LimitRequestFieldSize is only a partial mitigation and that lowering LimitRequestFields alone did not mitigate the vulnerable behavior before the fix because duplicate cookie crumbs were not counted properly.

Remediation

Patch, then assume compromise.

Upgrade Apache HTTP Server's HTTP/2 component to a version containing the fix for CVE-2026-49975, specifically mod_http2 v2.0.41 or later, or a subsequent Apache httpd release that incorporates the same patch. The cited fix changes handling so cookie headers count against LimitRequestFields. Apply the vendor patch rather than relying on tuning alone, because the writeup states that prior field-count behavior allowed cookie crumb bypasses.
PUBLIC EXPLOITS

Exploits

2 valid exploits after Mallory filtered fakes, detection scripts, and README-only repos.

VALID 2 / 2 TOTALView more in app
CVE-2026-49975-POCMaturityPoCVerified exploit

This repository is a small standalone Python proof-of-concept for CVE-2026-49975, an HTTP/2 remote denial-of-service issue. It contains one executable code file (exploit-test.py), a README describing the vulnerability and usage, and a license. The exploit is not part of a larger framework. The main script manually implements enough of the HTTP/2 protocol to open a connection, send the HTTP/2 client preface, exchange SETTINGS, and transmit crafted HEADERS/CONTINUATION frames. Its core technique is to seed the HPACK dynamic table with a header entry and then reference that entry thousands of times using indexed references. According to the code and README, this causes vulnerable servers to allocate disproportionate memory per reference. The script also sets INITIAL_WINDOW_SIZE to zero and periodically sends tiny WINDOW_UPDATE frames so the server cannot fully send responses or release memory, extending the lifetime of the allocations. Capabilities include: targeting arbitrary host/port pairs; optional TLS or cleartext h2c; parallel attack threads; multiple streams per connection; configurable number of HPACK references; and two attack modes. The nginx mode uses an empty x-bomb header to trigger bookkeeping-heavy allocation with lower per-reference amplification, while the classic mode uses a large cookie value intended for Apache/Envoy-style amplification. The script estimates expected server RAM pressure and continuously reconnects to sustain the attack. Fingerprintable targets are mostly user-supplied rather than hardcoded. The exploit operates against a remote TCP service speaking HTTP/2, typically on ports 443 or 80. No hardcoded malicious callback infrastructure, C2, or exfiltration endpoints are present. Overall, this is an operational network DoS PoC designed to exhaust memory on vulnerable HTTP/2 server implementations rather than achieve code execution or persistence.

mrx-arafatDisclosed Jun 4, 2026pythonmarkdownnetwork
Proof-of-Concept-POC---CVE-2026-49975-HTTP-2-Bomb-MaturityPoCVerified exploit

Repository contains a functional Python proof-of-concept for CVE-2026-49975 ('HTTP/2 Bomb'), plus two small Bash helper scripts and a Docker Compose lab definition for local testing against nginx and Apache. The main exploit file ('POC HTTP-2-Bomb') manually constructs HTTP/2 frames over raw sockets, optionally wrapped in TLS, and sends the HTTP/2 client preface followed by a SETTINGS frame that sets INITIAL_WINDOW_SIZE to 0. It then builds an HPACK-based header bomb using one literal header ('x-bomb') and thousands of indexed references, splits the payload across HEADERS and CONTINUATION frames, and keeps the connection alive indefinitely with minimal WINDOW_UPDATE and periodic PING frames. This structure indicates a remote DoS exploit intended to maximize server memory consumption while preventing the target from draining state. The Bash scripts are passive/quick checks for HTTP/2 support and server banner collection rather than exploitation. The Docker lab exposes nginx on localhost:8080 and Apache on localhost:8081 for reproducible testing. Overall, the repository’s purpose is to demonstrate and test a network-based HTTP/2 resource exhaustion attack against vulnerable web servers.

fevar54Disclosed Jun 3, 2026pythonbashnetworkweb
What this page doesn’t show

The version that knows your environment.

This page is what’s public. Mallory adds the parts that aren’t: which of your assets are affected, which adversaries are exploiting it right now, which detections to deploy, and what to do tonight.
Exposure mapping

Query your assets running an affected version, and investigate the blast radius.

Threat actor evidence

Every observed campaign linking this CVE to a named adversary.

Associated malware

Malware families riding this exploit, with evidence and IOCs.

Detection signatures

YARA, Sigma, Snort, and vendor rules, auto-deployed to your SIEM.

Vendor-by-vendor mapping

Cross-references every affected SKU, including bundled OEM variants.

Social activity15

Community discussion across Reddit, Mastodon, and other social sources.