{"id":13337,"date":"2026-06-03T10:04:16","date_gmt":"2026-06-03T10:04:16","guid":{"rendered":"https:\/\/serisec.com\/index.php\/2026\/06\/03\/http-2-bomb-remote-dos-exploit-hits-nginx-apache-iis-envoy-and-cloudflare-pingora\/"},"modified":"2026-06-03T10:04:16","modified_gmt":"2026-06-03T10:04:16","slug":"http-2-bomb-remote-dos-exploit-hits-nginx-apache-iis-envoy-and-cloudflare-pingora","status":"publish","type":"post","link":"https:\/\/serisec.com\/index.php\/2026\/06\/03\/http-2-bomb-remote-dos-exploit-hits-nginx-apache-iis-envoy-and-cloudflare-pingora\/","title":{"rendered":"HTTP\/2 Bomb \u2014 Remote DoS Exploit Hits nginx, Apache, IIS, Envoy, and Cloudflare Pingora"},"content":{"rendered":"<p>    HTTP\/2 Bomb \u2014 Remote DoS Exploit Hits nginx, Apache, IIS, Envoy, and Cloudflare Pingora<br \/>\n \t<BR><br \/>\n<BR><\/BR><br \/>\n    <!-- no image --><br \/>\n \t<BR><br \/>\n<BR><\/BR><\/p>\n<div>\n<p class=\"wp-block-paragraph\">A newly disclosed remote denial-of-service exploit dubbed \u201cHTTP\/2 Bomb\u201d targets the <a href=\"https:\/\/cybersecuritynews.com\/http-2-madeyoureset-vulnerability\/\" target=\"_blank\" rel=\"noreferrer noopener\">default HTTP\/2<\/a> configurations of the world\u2019s most widely deployed web servers, nginx, Apache httpd, Microsoft IIS, Envoy, and Cloudflare Pingora, enabling a single attacker on a home internet connection to exhaust tens of gigabytes of server memory in seconds.<\/p>\n<p class=\"wp-block-paragraph\">The exploit was discovered by researcher Quang Luong using Codex and chaining two techniques that have individually been known to the security community for nearly a decade: an HPACK compression bomb and a Slowloris-style connection hold.<\/p>\n<p class=\"wp-block-paragraph\">What makes this variant novel is not the primitives themselves, but the precise way they are combined and, critically, where the amplification originates.<\/p>\n<h2 id=\"h-http-2-bomb-remote-dos-exploit\" class=\"wp-block-heading\"><strong>HTTP\/2 Bomb Remote DoS Exploit<\/strong><\/h2>\n<p class=\"wp-block-paragraph\">HPACK (<a href=\"https:\/\/www.rfc-editor.org\/rfc\/rfc7541\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">RFC 7541<\/a>) is HTTP\/2\u2019s stateful header compression scheme. Each peer maintains a dynamic table of recently seen headers; a sender can insert a header once and subsequently reference it with a single-byte index.<\/p>\n<p class=\"wp-block-paragraph\">The receiver must materialize a full copy of that header on every reference.  According to Jun Rong and Duc Phan,\u00a0the exploit seeds the dynamic table with one header, then emits thousands of 1-byte indexed references in a single request, costing the attacker one wire byte while forcing the server to allocate anywhere from ~70 bytes (nginx, IIS, Pingora) to ~4,000 bytes (Apache httpd, Envoy) per reference.<\/p>\n<p class=\"wp-block-paragraph\">The second component exploits HTTP\/2 per-stream flow control (<a href=\"https:\/\/www.rfc-editor.org\/rfc\/rfc9113\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">RFC 9113<\/a>). The client advertises a zero-byte flow-control window, preventing the server from ever finishing its response.<\/p>\n<p class=\"wp-block-paragraph\">A trickle of 1-byte <code>WINDOW_UPDATE<\/code> frames continuously resets the send timeout, pinning every memory allocation in place for as long as the attacker wishes turning a transient amplification into a persistent memory hold.<\/p>\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/substackcdn.com\/image\/fetch\/%2524s_%21b5uX%21%2Cw_1456%2Cc_limit%2Cf_webp%2Cq_auto%3Agood%2Cfl_progressive%3Asteep\/https%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F5ca91bca-3d08-428c-aed2-64a4b18bdd63_1920x1080.gif?ssl=1\" alt=\"Attack on Multiple OS\"><figcaption class=\"wp-element-caption\">Attack on Multiple OS<\/figcaption><\/figure>\n<figure class=\"wp-block-table\">\n<table class=\"has-fixed-layout\">\n<thead>\n<tr>\n<th>Server<\/th>\n<th>Amplification<\/th>\n<th>Demo Result<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Envoy 1.37.2<\/td>\n<td>~5,700:1<\/td>\n<td>~32 GB in ~10s<\/td>\n<\/tr>\n<tr>\n<td>Apache httpd 2.4.67<\/td>\n<td>~4,000:1<\/td>\n<td>~32 GB in ~18s<\/td>\n<\/tr>\n<tr>\n<td>nginx 1.29.7<\/td>\n<td>~70:1<\/td>\n<td>~32 GB in ~45s<\/td>\n<\/tr>\n<tr>\n<td>Microsoft IIS (Windows Server 2025)<\/td>\n<td>~68:1<\/td>\n<td>~64 GB in ~45s<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<p class=\"wp-block-paragraph\">A Shodan analysis identified 880,000+ public-facing websites supporting HTTP\/2 and running one of these servers, though many are fronted by CDNs that reduce direct exposure, <a href=\"https:\/\/blog.calif.io\/p\/codex-discovered-a-hidden-http2-bomb\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Quang Luong said<\/a>.<\/p>\n<p class=\"wp-block-paragraph\">For servers that cap header-field count rather than decoded size (Apache, Envoy), the exploit uses a <code>Cookie<\/code> header bypass. RFC 9113 \u00a78.2.3 explicitly permits splitting a Cookie header into one field per crumb. Neither Apache nor Envoy was counting those crumbs against field limits.<\/p>\n<p class=\"wp-block-paragraph\">Envoy appends each crumb into a buffer; a 4 KB cookie value referenced 32,768 times produces a logical ~3,600:1 ratio, with measured RSS ratios reaching ~5,700:1 on a single stream once allocator overhead accumulates. Apache httpd rebuilds the entire merged cookie string on every crumb, leaving older copies live until stream cleanup, yielding ~4,000:1 even for an empty cookie.<\/p>\n<p class=\"wp-block-paragraph\">The Apache httpd variant was assigned CVE-2026-49975 following responsible disclosure on May 27, 2026, with a same-day fix committed by Stefan Eissing. The nginx fix shipped in version 1.29.8, importing the <code>max_headers<\/code> directive with a default ceiling of 1,000 headers.<\/p>\n<p class=\"wp-block-paragraph\">Prior related CVEs include CVE-2016-6581 (original HPACK Bomb, coined by Cory Benfield), CVE-2025-53020 (Apache httpd ~4,000:1 amplification, Gal Bar Nahum), CVE-2016-8740, and CVE-2016-1546.<\/p>\n<h2 id=\"h-mitigations\" class=\"wp-block-heading\"><strong>Mitigations<\/strong><\/h2>\n<ul class=\"wp-block-list\">\n<li>nginx: Upgrade to 1.29.8+; if not possible, set <code>http2 off;<\/code>\n<\/li>\n<li>Apache httpd: Apply mod_http2 v2.0.41 from the standalone releases; otherwise set <code>Protocols http\/1.1<\/code> to disable HTTP\/2<\/li>\n<li>Microsoft IIS \/ Envoy \/ Cloudflare Pingora: No patch available at time of writing disable HTTP\/2 or front with a proxy enforcing a hard per-request header count cap<\/li>\n<li>All servers: Cap per-worker memory via cgroups, <code>ulimit -v<\/code>, or container limits an OOM-killed worker that respawns is a far better failure mode than a machine pushed into swap<\/li>\n<\/ul>\n<p class=\"wp-block-paragraph\">The research team concludes the vulnerability class reflects a specification defect in RFC 7541. Section 7.3 frames memory risk solely as an amplification ratio and treats <code>SETTINGS_HEADER_TABLE_SIZE<\/code> as a sufficient bound.<\/p>\n<p class=\"wp-block-paragraph\">It does not account for per-entry bookkeeping overhead; the amplification in this exploit comes entirely from allocator metadata around nearly empty headers, bypassing every decoded-size limit. Five independent implementations read the same section and shipped the same bug.<\/p>\n<p class=\"wp-block-paragraph\">PoC scripts, Docker labs, and per-server writeups are available at the <a href=\"https:\/\/github.com\/califio\/publications\/tree\/main\/MADBugs\/http2-bomb\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Codex GitHub repository<\/a>. The researcher Quang Luong will present the techniques at the Real World AI Security conference at Stanford in June 2026.<\/p>\n<p class=\"has-text-align-center has-background wp-block-paragraph\" style=\"background:linear-gradient(180deg,rgb(238,238,238) 91%,rgb(169,184,195) 100%)\"><strong><a href=\"https:\/\/www.prophaze.com\/webinar-registration-closing-visibility-gaps-in-waap\/?utm_source=Cyber+security+news+&amp;utm_medium=Article+&amp;utm_campaign=Cyber+news#\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Free Webinar<\/a><\/strong> <strong>on OWASP API Top 10 and Guide to Close Visibility Gaps With WAAP<\/strong><\/p>\n<p>The post <a href=\"https:\/\/cybersecuritynews.com\/http-2-bomb-remote-dos-exploit\/\">HTTP\/2 Bomb \u2014 Remote DoS Exploit Hits nginx, Apache, IIS, Envoy, and Cloudflare Pingora<\/a> appeared first on <a href=\"https:\/\/cybersecuritynews.com\/\">Cyber Security News<\/a>.<\/p>\n<\/div>\n<p> \t<BR><br \/>\n <BR><\/BR><br \/>\n    Guru Baran<br \/>\n \t<BR><br \/>\n<BR><\/BR><br \/>\n<a href=\"https:\/\/cybersecuritynews.com\/http-2-bomb-remote-dos-exploit\/\">Go to cyber-security-news<\/a><br \/>\n \t<BR><br \/>\n <BR><\/BR><\/p>\n","protected":false},"excerpt":{"rendered":"<p>HTTP\/2 Bomb \u2014 Remote DoS Exploit Hits nginx, Apache, IIS, Envoy, and Cloudflare Pingora A newly disclosed remote denial-of-service exploit dubbed \u201cHTTP\/2 Bomb\u201d targets the default HTTP\/2 configurations of the world\u2019s most widely deployed web servers, nginx, Apache httpd, Microsoft IIS, Envoy, and Cloudflare Pingora, enabling a single attacker on a home internet connection to [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[129,63,131],"tags":[130],"class_list":["post-13337","post","type-post","status-publish","format-standard","hentry","category-cyber-security","category-cyber-security-news","category-vulnerability","tag-cyber-security-news"],"_links":{"self":[{"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/posts\/13337"}],"collection":[{"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/comments?post=13337"}],"version-history":[{"count":0,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/posts\/13337\/revisions"}],"wp:attachment":[{"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/media?parent=13337"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/categories?post=13337"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/tags?post=13337"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}