Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2026-78048— Apache bRPC: Remote Denial of Service via Out-of-Bounds Dynamic Table Sizing in HPACK Decoder

Quick assessment

Affected
Apache Software Foundation Apache bRPC
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

Apache bRPC(版本 < 1.18.0)在所有平台上的 HTTP/2(h2/gRPC)协议栈中,其 HPACK 头部压缩解码器存在一个可触发的断言缺陷。远程攻击者可通过发送特制的 HPACK 头部序列,导致服务器进程崩溃,从而引发拒绝服务(DoS)攻击。 根本原因: 在 文件中, 函数将动态表的环形缓冲区大小计算为 ,即假设每个表项的最小大小为 34 字节(名称 ≥ 1 字节 + 值 ≥ 1 字节 + 32 字节开销)。然而,RFC 7541 第 4.1 节明确规定,表项的最小大小应为 33 字节,因为值字

AI Predicted 7.5 Difficulty: Trivial
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-78048

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
Apache bRPC: Remote Denial of Service via Out-of-Bounds Dynamic Table Sizing in HPACK Decoder
Source: CVE Program / CVE List V5
Vulnerability Description
A reachable-assertion flaw in the HPACK header-compression decoder of the HTTP/2 (h2/gRPC) stack in Apache bRPC (version < 1.18.0) on all platforms allows a remote attacker to crash the server process by sending a crafted sequence of HPACK headers, resulting in a denial of service. Root Cause: In src/brpc/details/hpack.cpp, IndexTable::Init sizes the dynamic-table ring buffer as num_headers = max_size / (32 + 2), i.e. it assumes a minimum table entry of 34 bytes (name >= 1 byte + value >= 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 >= 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 <= 4096) without triggering eviction. The 121st AddHeader then hits CHECK(!_header_queue.full()), which aborts the process. Affected Scenarios: Use 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. How to Fix: (Choose one of the following options)  1. Upgrade bRPC to version 1.18.0, which fixes this issue. 2. Apply this patch: https://github.com/apache/brpc/pull/3462 Note: The 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).
Source: CVE Program / CVE List V5
CVSS Information
N/A
Source: CVE Program / CVE List V5
Vulnerability Type
可达断言
Source: CVE Program / CVE List V5

Affected Products

Vendor Product Affected Versions CPE Subscribe
Apache Software Foundation Apache bRPC 0 ~ 1.18.0 -

II. Public POCs for CVE-2026-78048

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-78048

请登录查看更多情报信息。

Same Patch Batch · Apache Software Foundation · 2026-10-21 · 39 CVEs total

CVE-2026-56386 Apache bRPC: Integer Underflow and Out-of-Bounds Read in HTTP/2 DATA Frame Parser
CVE-2026-74758 Apache bRPC: Heap Use-After-Free in RTMP Abort Message Handling
CVE-2026-74757 Apache bRPC: Uncontrolled Memory Allocation via Malicious mcpack Array Item Count
CVE-2026-74755 Apache bRPC: Integer Underflow in mcpack2pb Parser Leading to Denial of Service
CVE-2026-66392 Apache bRPC: TLS Client Accepts Certificates for Mismatched Peer Names
CVE-2026-61916 Apache bRPC: Out-of-bounds Read in URL and Header Lookup Tables on Unsigned-char Platforms
CVE-2026-61902 Apache bRPC: Memory Exhaustion Through Inconsistent Message Body Limits
CVE-2026-58064 Apache bRPC: Denial of Service via Unbounded Redis Inline Command Allocation
CVE-2026-56388 Apache bRPC: Out-of-Bounds Write in Redis Command Parser
CVE-2026-56387 Apache bRPC: Remote Memory Exhaustion in RTMP AMF Parser
CVE-2026-78058 Apache bRPC: Unbounded Resource Consumption and Crash in the HTTP/2 Receive Path
CVE-2026-54427 Apache bRPC: Stack Exhaustion via Unbounded Recursion in AMF Parser
CVE-2026-54426 Apache bRPC: Stack Exhaustion via Unbounded Recursion in Redis Reply Parser
CVE-2026-54425 Apache bRPC: Stack Exhaustion via Recursive HPACK Dynamic Table Size Update Decoding
CVE-2026-48830 Apache bRPC: HTTP builtin request can mark a connection authenticated and bypass auth for
CVE-2026-59229 Apache IoTDB: Legacy Pipe Privilege Escalation
CVE-2026-59562 Apache IoTDB: Remote code execution and Unauthenticated path traversal in legacy pipe send
CVE-2026-41114 Apache IoTDB JDBC driver: Large-scale Memory Exhaustion via BigDecimal toPlainString in JD
CVE-2026-58663 Apache IoTDB: Auth Bypass in pipeTransfer() interface
CVE-2026-82425 Apache bRPC: Reachable Assertion in Socket::OnInputEvent Allows Remote Denial of Service

Showing top 20 of 39 CVEs. View all on vendor page &rarr; →

IV. Related Vulnerabilities

V. Comments for CVE-2026-78048

No comments yet


Leave a comment