GHSA-9hx3-v45m-g57x
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach bRPC h2/gRPC port on untrusted network
-
DeliverySend crafted HEADERS frame with 121 minimal HPACK entries
-
ExploitFill dynamic-table ring buffer past 120 slots
-
ExecutionTrigger CHECK(!_header_queue.full()) assertion
-
ImpactCrash server process (denial of service)
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Authentication mechanism validation
MITRE ATT&CK
2 techniques across 2 tactics: Defense Evasion, Initial Access 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) exposing the HTTP/2 (h2) or gRPC protocol on a port reachable from an untrusted network, which is the default parser on bRPC server ports. The malicious header block is processed during HPACK decoding before any authenticator runs, so no credentials or user interaction are required. Exploitation is bounded only by network reachability to the h2/gRPC port and by the server running an affected version; the default 4096-byte HPACK table is sufficient to trigger the crash, so no non-default configuration is needed. Deployments that do not serve h2/gRPC, or that have upgraded to 1.18.0 / applied PR #3462, are not exploitable. |
| Impact | No CVSS vector, EPSS score, KEV listing, or POC indicator was supplied in the input, so quantitative exploitation signals are entirely absent and cannot be cross-referenced - this assessment rests on the Apache advisory text alone. The vulnerability is a remote denial-of-service: a crafted HPACK header block sent to a bRPC server's HTTP/2 (h2)/gRPC port causes a dynamic-table slot miscalculation (33-byte minimum entry sized as 4096/34 = 120 slots while eviction is driven by byte usage, not slot count), so the 121st minimal entry trips CHECK(!_header_queue.full()) and aborts the process. The advisory states the h2 parser runs before any Authenticator check on the shared port, implying pre-authentication reach, but because no CVSS vector was provided I cannot confirm PR:N from authoritative metrics - authentication requirements are asserted by the advisory, not by a scored vector. Impact is limited to availability (process crash); there is no indication of confidentiality or integrity loss. On balance this is a genuine, low-complexity remote-crash DoS worth prioritizing for any internet- or untrusted-network-exposed bRPC deployment, but it is NOT a high-real-risk code-execution issue, and the absence of EPSS/KEV/POC data means real-world exploitation prevalence is currently unknown rather than demonstrated. |
| Exploit ScenarioDerived | An attacker able to reach a bRPC server's HTTP/2 or gRPC port sends a single crafted HEADERS frame containing 121 minimal 33-byte HPACK entries (121*33 = 3993 bytes, under the 4096-byte table cap), which never triggers byte-based eviction. The 121st AddHeader call exceeds the 120 allocated ring-buffer slots, hits an internal CHECK assertion, and aborts the server process, dropping all connections. No authenticated session is needed because HPACK decoding occurs before any authenticator check; no public exploit code was identified in the provided data. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 21, 2026
Unauthenticated remote attackers can abort an Apache bRPC process (versions through 1.17.0) by sending a single small HTTP/2 HEADERS block that over-fills the HPACK dynamic table's fixed-size ring buffer, tripping a CHECK(!_header_queue.full()) assertion that terminates the server. Because the h2 parser is enabled by default on every bRPC server port and decodes header blocks before any Authenticator runs, no credentials, user interaction, or non-default configuration are required - the default 4096-byte table is enough to reach the abort. The issue is fixed in bRPC 1.18.0 (upstream patch PR #3462); no public exploit code or confirmed active exploitation was identified at time of analysis, and no CVSS, EPSS, or KEV data was supplied alongside the advisory.
RemediationAI
Vendor-released patch: upgrade Apache bRPC to 1.18.0, which contains the corrected dynamic-table sizing (max_size / 33 minimum-entry accounting plus a guaranteed ring-buffer slot to avoid malloc(0)) and rejects oversized or malformed header handling paths. If an immediate upgrade is not possible, apply the upstream fix at https://github.com/apache/brpc/pull/3462, which backports the same accounting change. Where neither is feasible in the short term, remove the attack surface: do not expose bRPC h2/gRPC ports to untrusted networks - bind them to loopback or a private interface, or gate them behind a mutually authenticated proxy/L7 gateway that terminates HTTP/2 and re-originates a sanitized request stream (trade-off: extra hop, added latency, and the proxy itself must enforce header-list limits); or disable the h2/gRPC listener where only bRPC's native protocol is needed (trade-off: breaks all HTTP/2 and gRPC clients, including health checks and sidecars that assume h2). Note that network ACLs alone are weak mitigation because a single connection from any permitted source is enough to crash the process, so restrict access to a tightly scoped client set if full isolation is not achievable. Consult https://github.com/apache/brpc and https://seclists.org/oss-sec/2026/q4/274 for the complete 1.18.0 advisory set before rolling out the upgrade, since the same release addresses multiple related h2 and parser issues.
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 flaw lives in the HPACK decoder used by Apache bRPC's HTTP/2 (h2) and gRPC receive path. RFC 7541 sizes a dynamic-table entry as name length + value length + 32 bytes of overhead, so the smallest possible entry is 33 bytes (a 1-byte name with an empty value). bRPC's HeaderQueue sized its slot capacity using a 34-byte assumption (4096/34 = 120 slots) while eviction in AddHeader was driven by byte accounting against _max_size rather than by slot count. Those two accounting models diverge: a peer can push 121 minimal 33-byte entries (121 × 33 = 3993, still within the 4096-byte budget) so no eviction is triggered, and the 121st insertion then hits CHECK(!_header_queue.full()) and aborts the process. This is a resource-accounting/assertion-failure pattern (the input supplied no CWE assignment; it maps conceptually to reachable-assertion and uncontrolled-resource-consumption classes) rather than a memory-corruption bug - the impact is purely availability, since a well-formed but adversarial header sequence reaches a fatal assertion in default builds. The fix resizes the dynamic table using the 33-byte minimum entry (max_size / (32 + 1)) and guarantees at least one ring-buffer slot is retained when max_size is below the minimum entry size, preventing initialization failure on malloc(0). Related h2 hardening landed in the same release (bounded concurrent streams, header-list size enforcement, and dynamic-table size validation against the advertised SETTINGS_HEADER_TABLE_SIZE), which addresses adjacent desynchronization paths in the same decoder.
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
Pre-authentication HPACK decoding on a default network-facing port with a single crafted frame gives AV:N/AC:L/PR:N/UI:N; impact is a process crash only, so A:H with C:N/I:N.
Lifecycle Timeline
2Description PRE-NVD
Executive ViewAI
Apache bRPC versions through 1.17.0 are exposed to a remote availability attack in which a single small HTTP/2 HEADERS block can terminate the server process, potentially disrupting any API or microservice built on the library. Because the HTTP/2 parser is enabled by default, affected services may be broadly exposed without special configuration, making this a leadership-level service-continuity concern. No public exploit code or confirmed active exploitation was identified at time of analysis, but the low effort and default exposure warrant prioritized remediation.
Apply vendor patch.
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
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
EUVD-2026-107228
CVE.org
EPSS
Exploit-DB