{"id":44039,"date":"2026-10-21T20:38:33","date_gmt":"2026-10-21T12:38:33","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-78048"},"modified":"2026-10-21T20:38:33","modified_gmt":"2026-10-21T12:38:33","slug":"cve-2026-78048","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-78048","title":{"rendered":"CVE-2026-78048 &#8211; A reachable-assertion flaw in the HPACK header-compression decoder of the HTTP\/2 (h2\/gRPC)"},"content":{"rendered":"<p>A reachable-assertion flaw in the HPACK header-compression decoder of the HTTP\/2 (h2\/gRPC) stack in Apache bRPC (version = 1 byte + value &gt;= 1 byte + 32 bytes of overhead). However, RFC 7541 section 4.1 specifies that the minimum entry size is 33 bytes, because the value may be empty (name &gt;= 1 byte + value == 0 + 32 bytes). For the default 4096-byte table this allocates only 120 slots (4096\/34). Eviction in AddHeader is driven by byte usage (_max_size), not by slot count, so a peer can add 121 minimal 33-byte entries (121*33 = 3993 &lt;= 4096) without triggering eviction. The 121st AddHeader then hits CHECK(!_header_queue.full()), which aborts the process.<\/p>\n<p>Affected Scenarios:<br \/>\nUse a bRPC server that serves HTTP\/2 or gRPC requests (e.g. via the h2 protocol) from an untrusted network. The malicious header block is processed during HPACK decoding of incoming requests without authentication.<\/p>\n<p>How to Fix:<br \/>\n(Choose one of the following options)\u00a0<br \/>\n1. Upgrade bRPC to version 1.18.0, which fixes this issue.<br \/>\n2. Apply this patch:\u00a0https:\/\/github.com\/apache\/brpc\/pull\/3462<\/p>\n<p>Note:<br \/>\nThe fix sizes the dynamic table for the 33-byte minimum entry (max_size \/ (32 + 1)) and ensures at least one ring-buffer slot is kept when max_size is smaller than the minimum entry, so that initialization cannot fail on malloc(0).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A reachable-assertion flaw in the HPACK header-compression decoder of the HTTP\/2 (h2\/gRPC) stack in Apache bRPC (version &lt; 1.18.0) on all platforms allows a remote attacker to crash the server process<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-44039","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/44039","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=44039"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=44039"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=44039"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}