Skip to content
VulniPulse
UnratedApache Software Foundation

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

This Apache advisory covers CVE-2026-78048 in Apache bRPC.

Open the Apache advisory

Key facts

CISA KEV
Not listed (catalogue checked )
Affected
Apache bRPC before 1.18.0
Fixed in
1.18.0
Source published
Source revised
Listed by VulniPulse
Record changed

Compiled by VulniPulse from the linked sources. How records are collected and checked.

Affected products & platforms

Apache Software FoundationUnclassified

Description

A reachable-assertion flaw in the HPACK header-compression decoder of the HTTP/2 (h2/gRPC) stack in Apache bRPC (version = 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:

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).

Text from the source record.

Affected versions
  • Apache bRPC before 1.18.0

Official advisory · medium-confidence parse· fetched ·verify at source

How to fix CVE-2026-78048

Upgrade to a fixed release named by Apache:

  • 1.18.0

Vendor guidance

  • Upgrade bRPC to version 1.18.0, which fixes this issue.
  • 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).

Workarounds

  • The malicious header block is processed during HPACK decoding of incoming requests without authentication.

Apache Software Foundation advisories, October 2026All Apache Software Foundation advisories

Get an email when Apache publishes the next one.

See Apache's last 90 days of advisories first. Then choose one product with live alerts free for life, or a free month of real-time alerts on everything with the severity, the fixed version and the vendor's link (card needed, then US$15/month; we email you before the first charge).

Alert me about Apache

iPhone and Android apps · New on the App Store

Monitor future Apache Software Foundation CVEs from your phone.

Choose a whole vendor or a precise platform, then receive matching security advisories by phone notification, email, or both. Coverage follows 34 official vendor sources and 160+ reviewed platform categories.