GHSA-h682-23cr-8m53
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach bRPC h2/gRPC server port
-
ExploitSend HEADERS with 121 minimal HPACK entries
-
ImpactCHECK abort crashes process
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource allocation limits
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 at version < 1.18.0 serving HTTP/2 or gRPC over the h2 protocol and reachable from an untrusted network; the h2 parser is enabled by default on every bRPC port. The HPACK decode path runs before any Authenticator check, so the advisory states no authentication is needed (not independently confirmable from a CVSS vector, which is absent). The default 4096-byte HPACK dynamic table is what makes the 121-minimal-entry trigger fit under the eviction threshold; a non-default smaller or larger table changes the exact entry count but not the class of flaw. Limiting factors: the attacker must be able to speak h2/gRPC to an exposed bRPC port, and impact is confined to crashing the process (denial of service) with no data exposure or code execution. |
| Impact | No CVSS vector, EPSS score, or KEV entry was provided with this record, and no POC is referenced, so several standard prioritization signals are missing and must be stated as such rather than assumed. Against that gap, the advisory text is specific: an attacker reachable over the network can send a crafted HTTP/2 HEADERS block that, during HPACK decoding, adds 121 minimal 33-byte dynamic-table entries (121*33 = 3993 <= the default 4096-byte table) without triggering byte-driven eviction, overrunning the ~120-slot ring buffer and hitting CHECK(!_header_queue.full()), which aborts the process. This is a low-complexity, availability-only denial of service (process crash) with no confidentiality or integrity impact and no code execution. My independent assessment is roughly CVSS 7.5 (A:H). Because KEV is not set, this is NOT confirmed as actively exploited; because no EPSS is supplied, widespread-exploitation probability cannot be quantified. Net: a genuine priority for any operator exposing a bRPC h2/gRPC port to untrusted peers, but tempered by availability-only impact and the niche footprint of the affected framework. The source lists CVSS as N/A - the vector below is my own, not a copy of any input score. |
| Exploit ScenarioDerived | An attacker who can reach a bRPC server's HTTP/2 or gRPC (h2) port from an untrusted network sends a single crafted HEADERS frame whose HPACK block inserts 121 minimal (name + empty value) dynamic-table entries. Because eviction is driven by byte usage rather than slot count, the entries fit under the 4096-byte table limit yet overflow the under-sized ring buffer, so the 121st AddHeader trips CHECK(!_header_queue.full()) and aborts the process. No public exploit is identified at time of analysis, and no authentication is needed since HPACK decoding runs before any Authenticator check. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 21, 2026
Remote denial of service in Apache bRPC through 1.17.0: a peer speaking HTTP/2 or gRPC over the h2 protocol can abort the server process by filling the HPACK dynamic table's fixed-size ring buffer. Because the table is sized for a 34-byte entry while the true minimum entry is 33 bytes, 121 minimal header entries (121 x 33 = 3993 bytes) fit within the default 4096-byte table without triggering byte-usage-based eviction, and the 121st insertion trips CHECK(!_header_queue.full()) and kills the process. The h2 parser is enabled by default on every bRPC port and HPACK decoding happens before any Authenticator check, so exposure to an untrusted network is the only precondition; there is no data exposure or code execution, only availability loss (assessed CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H). No CISA KEV entry, no public exploit code, and no EPSS score were provided with this record, so active exploitation status is unconfirmed and no public exploit was identified at time of analysis.
RemediationAI
Upgrade Apache bRPC to 1.18.0, the release that fixes this issue and the other 34 vulnerabilities in the same advisory; vendor-released patch: Apache bRPC 1.18.0. If a full upgrade cannot be scheduled immediately, apply the upstream fix at https://github.com/apache/brpc/pull/3462 - note this is a pull request against the source tree, so teams consuming distro or vendored packages need to confirm a patched build exists rather than assuming the PR alone protects them. Where neither is possible in the short term, the effective compensating control is exposure reduction, not configuration: because the h2 parser is enabled by default on every bRPC port and HPACK decoding occurs before authentication, the only reliable workaround is to keep h2/gRPC listeners off untrusted networks, enforced with firewall rules, security groups, or a network ACL restricting source ranges. Fronting the service with a reverse proxy or load balancer that enforces its own strict SETTINGS_MAX_HEADER_LIST_SIZE and rejects oversized HEADERS/CONTINUATION blocks will absorb this trigger, but the trade-off is that the proxy must fully terminate and re-originate HTTP/2 (not merely TCP-forward), which changes TLS termination and client-certificate behavior and may break gRPC streaming semantics. Disabling h2 entirely would remove the vector but eliminates gRPC support and any HTTP/2-based traffic, so it is only viable for deployments that can fall back to HTTP/1.1. Monitor for repeated connection resets or process exits correlated with short HEADERS frames as a detection signal, and review the remaining items in the 1.18.0 advisory, since patching only this CVE leaves the other h2 parser issues live.
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 bRPC's HTTP/2 (h2) receive path, specifically the HPACK header-decompression layer defined by RFC 7541. HPACK maintains a dynamic table whose eviction policy is normally driven by byte accounting, where each entry costs the name length plus the value length plus a fixed 32-byte overhead. bRPC computed the ring-buffer capacity using a 34-byte assumption (a 1-byte name, an empty value, and the 32-byte overhead), yielding 120 slots for the default 4096-byte table (4096/34). The actual smallest legal entry is 33 bytes (1-byte name + 0-byte value + 32), so 121 entries consume only 3993 bytes and stay under the _max_size eviction threshold. Eviction in AddHeader is triggered by byte usage rather than slot count, so the ring buffer fills before eviction runs and the 121st AddHeader reaches CHECK(!_header_queue.full()) and aborts the process. This is classically a denial-of-service condition (CWE-770/CWE-617 family: uncontrolled resource consumption leading to a reachable assertion), not a memory-corruption or information-disclosure bug. The upstream fix sizes the dynamic table for the true 33-byte minimum (max_size / (32 + 1)) and guarantees at least one ring-buffer slot is retained when max_size is smaller than the minimum entry, preventing both the off-by-one slot shortfall and an initialization failure on malloc(0). Note that a non-default SETTINGS_HEADER_TABLE_SIZE changes the precise number of entries needed to fill the queue, but not the underlying class of defect. This record is one of 35 issues fixed together in bRPC 1.18.0, several of which cluster in the same h2/HPACK and wire-parser code paths (unbounded concurrent streams, HPACK bomb expansion, decompression amplification, and streaming RPC authentication gaps).
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
Network-reachable h2 port, simple crafted HEADERS block (AC:L), decode runs before auth so PR:N/UI:N; impact is process abort only, hence 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 can be crashed remotely by any network peer that speaks HTTP/2 or gRPC, causing complete loss of availability for applications and services built on the framework. The vulnerable protocol handling is enabled by default on every bRPC port and is reached before any authentication check, so exposure is limited only by network reachability - no credentials, user interaction, or specialized tooling are required. There is no confidentiality or integrity impact, but a trivially small amount of traffic can repeatedly terminate production RPC servers, and no vendor fix is currently available.
No vendor-released patch identified at time of analysis. Interim mitigations: restrict network access to bRPC listeners via firewall, security group, or network policy allowlists; front bRPC services with an L7 proxy or gateway that terminates or blocks HTTP/2 and gRPC before traffic reaches bRPC; disable h2/gRPC on listeners where the transport is not required; apply per-source connection and request rate limits; deploy process supervision with restart alerting and log monitoring to detect crash loops indicating attempted exploitation.
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
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
EUVD-2026-107188
CVE.org
EPSS
VulDB
Exploit-DB