GHSA-qgcc-7cgj-hmr3
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessConnect to default h2/gRPC port
-
ExploitSend 121 minimal 33-byte HPACK entries
-
ImpactOverflow header-queue slots, trigger CHECK abort
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V4 - API and Web Service HTTP request consistency
|
| Exploitation Conditions | The target must be a bRPC server (version < 1.18.0) serving HTTP/2 or gRPC over the h2 protocol and reachable from an untrusted network. This is the default configuration - the h2 parser is enabled on every bRPC server port and HPACK decoding occurs before any Authenticator check, so no credentials or user interaction are required. The only practical limits are network reachability to an h2/gRPC listener and the server running an affected version (<= 1.17.0); the default 4096-byte HPACK dynamic table is precisely the vulnerable condition, and impact is bounded to a single-process crash rather than code execution or data disclosure. |
| Impact | No CVSS vector was supplied in the input (CVSS: N/A), so the following is an independent assessment. This is a remote denial-of-service: the description states a peer can add 121 minimal 33-byte HPACK entries without triggering byte-based eviction, causing the 121st AddHeader to hit CHECK(!_header_queue.full()) and abort the process. Grounding in the description, the attack is network-reachable, low-complexity (just send a crafted header block), needs no user interaction, and the h2 parser is enabled by default and runs before any Authenticator check - yielding a self-assessed CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H (7.5, High). Impact is confined to availability (a clean CHECK abort/crash) with no confidentiality or integrity loss and no code execution, so this is a real priority for any deployment exposing h2/gRPC to untrusted networks but is a crash primitive, not a compromise. No EPSS score, no CISA KEV listing, and no public exploit were provided, so exploitation-likelihood signals are entirely absent; note the ease of triggering (trivial, pre-auth, default config) means a weaponized crash is plausible even though no exploitation evidence exists yet. CAVEAT: the provided description text bundles several distinct advisory entries (CVE-2026-78058, -78066, -78334) and its reference points to CVE-2026-78048 rather than CVE-2026-86146 - verify the precise affected-version range and identifier mapping against the upstream Apache advisory. |
| Exploit ScenarioDerived | An attacker reachable to a bRPC server's default h2/gRPC port opens an HTTP/2 connection and sends a HEADERS block containing 121 minimal 33-byte HPACK entries (121*33 = 3993 bytes, under the 4096-byte table cap so no eviction occurs). The 121st AddHeader exceeds the ~120 available ring-buffer slots and trips CHECK(!_header_queue.full()), aborting the server process. No exploit code was identified in the provided data; only the fixing patch (apache/brpc PR #3462) is referenced. |
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 Apache bRPC 1.17.0 and earlier servers that expose HTTP/2 or gRPC (h2) listeners by sending a header block that fills the HPACK dynamic table's ring buffer without triggering byte-based eviction. The flaw is a slot-accounting mismatch in the HPACK decoder: the default 4096-byte table is provisioned for 34-byte entries, but 33-byte minimal entries permit 121 insertions before the fixed-size ring buffer overflows, tripping CHECK(!_header_queue.full()) and terminating the process. No public exploit code was identified at time of analysis; the independent assessment rates this CVSS 3.1 7.5 (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H), availability-only, with exploitation requiring only network reachability to a default-configured h2/gRPC port because HPACK decoding occurs before any Authenticator check.
RemediationAI
Vendor-released patch: Apache bRPC 1.18.0 fixes this issue; upgrade to 1.18.0, which bundles 35 security fixes including the HPACK dynamic-table sizing correction, and also resolves the related high-severity issues CVE-2026-78058 (PR #3474) and CVE-2026-78066 (PR #3476). If an immediate upgrade is not possible, apply the upstream patch at https://github.com/apache/brpc/pull/3462, which sizes the dynamic table for the 33-byte minimum entry (max_size / (32 + 1)) and preserves at least one ring-buffer slot when max_size is below the minimum entry so initialization cannot fail on malloc(0). There is no vendor-supplied runtime flag that disables this specific defect; as a compensating control, restrict network access to h2/gRPC listeners with firewalls or security groups so only trusted clients can reach them (trade-off: reduces exposure but does not fix the defect for allowed peers), or terminate HTTP/2 at a front-end proxy that enforces strict per-connection header-list and dynamic-table limits (trade-off: adds latency and an architectural component, and may break end-to-end HTTP/2 semantics such as streaming or trailers). The 1.18.0 fix additionally enforces max_concurrent_streams (1024 per connection) and max_header_list_size (1 MiB decoded) defaults that raise the bar for related HTTP/2 abuse, but patching remains the primary remediation for CVE-2026-86146.
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
Apache bRPC is a C++ RPC framework whose HTTP/2 (h2) parser is enabled by default on every server port and handles both native h2 and gRPC traffic. HPACK, the HTTP/2 header compression format, maintains a dynamic table bounded by the advertised SETTINGS_HEADER_TABLE_SIZE (4096 bytes by default). Each HPACK entry carries 32 bytes of overhead, so the smallest legal entry is 33 bytes (a 1-byte name with an empty value). The vulnerable code sizes the dynamic table's ring buffer as max_size / 34, yielding 120 slots for the default 4096-byte table, while eviction in AddHeader is driven only by cumulative byte usage (_max_size) rather than by slot count. A peer can therefore insert 121 minimal 33-byte entries (121 * 33 = 3993 bytes, still within the 4096-byte budget) so that no byte-based eviction occurs, and the 121st AddHeader hits CHECK(!_header_queue.full()), which aborts the process. No CWE identifier was supplied in the input; the root-cause class is unbounded resource consumption / missing enforcement of a size limit across two parallel accounting mechanisms. The same 1.18.0 release also fixes related HTTP/2 receive-path issues tracked as CVE-2026-78058 (unbounded concurrent streams, HPACK bomb, write-cap bypass) and CVE-2026-78066 (unbounded decompression and wire-declared sizes), which share the theme of trusting peer-declared limits.
Know when Node.js gets its next vulnerability
- 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
Remote h2 parser is default-on and processes HPACK before authentication (AV:N/AC:L/PR:N/UI:N); impact is a process abort only, so A:H with C:N/I:N and no scope change.
Lifecycle Timeline
2Description PRE-NVD
Articles & Coverage 1
Executive ViewAI
Apache bRPC 1.17.0 and earlier, a remote procedure call framework used to build high-throughput gRPC and HTTP/2 services, can be crashed by a single unauthenticated network request, taking down any service that exposes a default-configured h2 or gRPC listener. Because the failure occurs before any authentication check, no credentials or prior access are needed - only reachability to the port - so internet-facing services built on bRPC are exposed to straightforward availability attacks that require no specialized tooling. Leadership should care because the consequence is full process termination and service outage rather than data loss, and no vendor fix is currently available, leaving network isolation and monitoring as the only near-term defenses for teams running this framework.
No vendor-released patch identified at time of analysis. Interim mitigations: restrict network reachability to h2/gRPC ports via firewall, security group, or service mesh policy; disable unnecessary h2/gRPC listeners; terminate HTTP/2 and gRPC at a hardened reverse proxy or gateway that enforces header-count and connection rate limits before traffic reaches bRPC; reduce the advertised SETTINGS_HEADER_TABLE_SIZE on exposed listeners to cap HPACK insertions per connection; and run affected services under supervision with automatic restart and crash-loop alerting to shorten outage duration.
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
HTTP request smuggling exploits inconsistencies in how front-end and back-end servers parse HTTP message boundaries.
Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.
Remote code execution in n8n's workflow expression evaluation system allows an authenticated user with workflow creation
A vulnerability in the NuPoint Unified Messaging (NPM) component of Mitel MiCollab through 9.8 SP1 FP2 (9.8.1.201) could
FortiOS and FortiProxy contain an authentication bypass via the Node.js websocket module allowing unauthenticated remote
Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour
Eval injection vulnerability in the internals.batch function in lib/batch.js in the bassmaster plugin before 1.5.2 for t
Flowise version 3.0.5 contains a remote code execution vulnerability in the CustomMCP node. The mcpServerConfig paramete
Node.js 8.5.0 before 8.6.0 allows remote attackers to access unintended files, because a change to ".." handling was inc
An issue was discovered in the node-serialize package 0.0.4 for Node.js. Rated critical severity (CVSS 9.8), this vulner
OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph
Directory traversal vulnerability in the st module before 0.2.5 for Node.js allows remote attackers to read arbitrary fi
Multiple SQL injection vulnerabilities in the Manage Accounts page in the AccountManagement.asmx service in the Solarwin
The JS-YAML module before 2.0.5 for Node.js parses input without properly considering the unsafe !!js/function tag, whic
EUVD-2026-107226
CVE.org
EPSS
Exploit-DB