GHSA-389h-hr53-4f3g
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach bRPC h2/gRPC port
-
ExploitSend crafted HPACK header block with 121 minimal entries
-
ExecutionOverflow dynamic-table ring buffer past CHECK
-
ImpactAbort server process (DoS)
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Null pointer safety, defensive checks
MITRE ATT&CK
1 technique across 1 tactic: Impact The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires a bRPC server (version <1.18.0) serving HTTP/2 or gRPC over the h2 protocol and reachable from an untrusted network. The condition is satisfied by DEFAULT configuration: the h2 parser is enabled on every bRPC server port and processes the malicious header block during HPACK decoding before any Authenticator check, so no authentication, user interaction, or non-default setting is needed. The specific trigger is an HPACK dynamic table left at its default 4096-byte size (yielding 120 ring-buffer slots) into which the peer inserts 121 minimal 33-byte entries. Limiting factor: the target must expose an h2/gRPC endpoint to the attacker; pure HTTP/1 or non-h2 bRPC deployments are not reachable via this path. |
| Impact | This is a remote, unauthenticated denial-of-service affecting Apache bRPC through 1.17.0 in its HTTP/2 HPACK decoder. No CVSS vector, EPSS score, or KEV status is provided in the input, so quantitative exploitation-probability signals are unavailable and cannot be compared. Exploitation status is 'no public exploit identified at time of analysis'; however, the advisory contains a precise, step-by-step reproduction (121 minimal 33-byte dynamic-table entries totalling 3993 bytes, staying under the 4096-byte _max_size so eviction never fires, driving the ring buffer full and tripping CHECK(!_header_queue.full())), which lowers the barrier to building a working trigger even though no weaponized code is published. The impact is availability-only (process abort) with no confidentiality or integrity effect; the attack vector is network, complexity is low, no privileges or user interaction are required, because the h2 parser runs before any Authenticator check on the shared port. The real-world priority therefore hinges on exposure: a bRPC server directly serving h2/gRPC to untrusted networks faces a trivial, reliable crash and should patch promptly; the absence of KEV/EPSS data suggests no evidence of widespread automated exploitation yet, consistent with a researcher-reported bug rather than an actively abused one. Note the record-vs-content discrepancy - the input is labeled CVE-2026-82953 but the detailed advisory text cross-references CVE-2026-78048; verify the canonical identifier before tracking. |
| Exploit ScenarioDerived | An attacker able to reach a bRPC server's HTTP/2 or gRPC port sends a single crafted HEADERS frame whose HPACK block inserts 121 minimal 33-byte dynamic-table entries, each too small to trigger byte-based eviction. The 121st insertion overflows the fixed 120-slot ring buffer and hits an internal CHECK assertion, aborting the entire server process. No authentication or user interaction is needed, and a detailed reproduction is documented in the advisory though no packaged exploit is published. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 21, 2026
Remote unauthenticated denial of service in Apache bRPC through 1.17.0 allows any peer that can reach an HTTP/2 or gRPC (h2) listener to abort the server process with a single crafted HEADERS frame. The HPACK dynamic table's ring buffer is sized by byte capacity rather than slot count, so a peer can insert 121 minimal 33-byte entries (3,993 bytes, still under the default 4,096-byte budget) without triggering eviction and then hit a CHECK(!_header_queue.full()) assertion that terminates the process. The h2 parser is enabled by default on every bRPC server port and decodes headers before any Authenticator check, so no credentials, user interaction, or non-default configuration are required; no public exploit code was identified at time of analysis, but a vendor fix exists and the flaw was addressed together with a large batch of other HTTP/2 parsing issues in bRPC 1.18.0.
RemediationAI
Upgrade Apache bRPC to version 1.18.0, which sizes the HPACK dynamic table for the 33-byte minimum entry (max_size / (32 + 1)) and guarantees at least one ring-buffer slot is retained when max_size is smaller than a minimum entry, preventing both the assertion abort and the malloc(0) initialization failure. If an immediate upgrade is not possible, apply the upstream fix at https://github.com/apache/brpc/pull/3462 and track the remaining 1.18.0 fixes referenced by CVE-2026-78058 (PR 3474), CVE-2026-78066 (PR 3476), and CVE-2026-78334, all of which affect the same pre-authentication parsing path. As a compensating control, restrict h2/gRPC listener ports to trusted networks or front them with a reverse proxy that enforces a small maximum header-list size and header count, accepting the trade-off that legitimate gRPC clients with large metadata may be rejected and that protocol-level limits must be tuned alongside bRPC's own -h2_client_max_header_list_size and -max_body_size flags. Disabling h2 on a port that only needs HTTP/1 removes the attack path entirely but breaks gRPC clients and any binary h2 consumers, so it should be scoped to internal or low-trust-facing listeners; whichever mitigation is chosen, monitor server logs for abrupt process exits with SIGABRT/CHECK failures as an indicator of attempted exploitation.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The defect lives in bRPC's HPACK decoder used by the built-in HTTP/2 (h2) stack that also serves gRPC traffic. HPACK maintains a dynamic table backed by a fixed-capacity ring buffer; the implementation sizes that buffer for the minimum possible entry - 32 bytes of per-entry overhead plus at least one byte of name, 33 bytes total - and for the protocol-default 4,096-byte table that yields only about 120 usable slots (4096/34 in the vendor's arithmetic). Eviction is driven by accumulated byte usage (_max_size) rather than by occupancy, so an attacker sending 121 minimal 33-byte never-indexed or incremental-indexing entries consumes just 3,993 bytes, stays inside the advertised budget, and never causes an eviction; the 121st AddHeader call then trips CHECK(!_header_queue.full()), an assertion failure that aborts the entire server process. The same code path mishandles dynamic table size updates validated against the protocol default of 4,096 instead of the advertised SETTINGS_HEADER_TABLE_SIZE, which can desynchronize the decoder and dereference NULL - the related unbounded-resource and header-list-limit weaknesses tracked as CVE-2026-78058 (PR 3474), the decompression/parser exhaustion issues in CVE-2026-78066 (PR 3476), and the streaming-RPC authentication gap in CVE-2026-78334 were all remediated in the same 1.18.0 release. Because the h2 parser runs on the shared port ahead of any application Authenticator, the attack surface is every bRPC deployment exposing h2/gRPC to an untrusted network; pure HTTP/1 or non-h2 deployments are not reachable through this specific path.
Know when the next one hits your stack
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
Default-enabled h2 parser processes the malicious block pre-authentication over the network, so AV:N/AC:L/PR:N/UI:N; impact is a process abort, so A:H with C:N/I:N.
Estimated by vuln.today — no official severity rating has been published for this CVE yet.
Lifecycle Timeline
2Description PRE-NVD
Executive ViewAI
Apache bRPC releases through 1.17.0 contain a remotely reachable denial-of-service flaw that can terminate server processes when an exposed HTTP/2 or gRPC listener receives a crafted HEADERS frame. This is an availability risk for any service exposing bRPC h2 listeners, and leadership should prioritize inventory and upgrade because a single malformed request can cause process termination; no public exploit identified at time of analysis.
Apply vendor patch (bRPC 1.18.0).
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
Attack Technique
A null pointer dereference occurs when a program attempts to access memory through a pointer that has been set to NULL (address 0x0).
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
EUVD-2026-107221
CVE.org
EPSS
Exploit-DB