{"id":41908,"date":"2026-10-20T12:32:58","date_gmt":"2026-10-20T04:32:58","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-105297"},"modified":"2026-10-20T12:32:58","modified_gmt":"2026-10-20T04:32:58","slug":"cve-2026-105297","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-105297","title":{"rendered":"CVE-2026-105297 [HIGH] &#8211; Summary\n\n\n\nBefore version 0.8.1, Pingora&#8217;s HTTP\/2 server used the h2 crate&#8217;s default limit"},"content":{"rendered":"<p>Summary<\/p>\n<p>Before version 0.8.1, Pingora&#8217;s HTTP\/2 server used the h2 crate&#8217;s default limits unless the application set its own 16 MiB decoded header-list size and no limit on concurrent streams. A remote, unauthenticated client can send 1-byte HPACK references to a near-empty header, making the server allocate hundreds of thousands of header fields per stream across an unlimited number of streams on one connection, and use HTTP\/2 flow control to keep those streams open. This can exhaust memory and degrade or terminate the Pingora process.<\/p>\n<p>Impact<\/p>\n<p>Remote, unauthenticated denial of service against any Pingora service that terminates HTTP\/2 (h2 or h2c) without explicitly setting max_header_list_size and max_concurrent_streams. The reporter showed that a single connection could get a Pingora process with a 2 GiB memory limit OOM-killed.<\/p>\n<p>Note that Cloudflare CDN customers were unaffected, as internal Pingora services at Cloudflare do not have HTTP\/2 clients.<\/p>\n<p>Mitigation:<\/p>\n<p>  *  <\/p>\n<p>Upgrade to pingora 0.8.1 or later (fix:  https:\/\/github.com\/cloudflare\/pingora\/commit\/d193c8d49b8b7c1c1ede93183759caa4f6906bbd ). When no H2Options are supplied, Pingora now advertises and enforces a 64 KiB decoded header-list limit and at most 100 concurrent streams per connection.<\/p>\n<p>  *  <\/p>\n<p>Applications that supply their own H2Options are not covered by these defaults and must set max_header_list_size and max_concurrent_streams explicitly (this also works on versions before 0.8.1), or, on 0.8.1 and later, start from pingora_core::protocols::http::v2::server::default_h2_options(). H2Options::default() does not include these limits.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Summary<\/p>\n<p>Before version 0.8.1, Pingora&#8217;s HTTP\/2 server used the h2 crate&#8217;s default limits unless the application set its own 16 MiB decoded header-list size and no limit on concurrent streams. A rem<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-41908","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/41908","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=41908"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=41908"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=41908"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}