Skip to main content

Apache bRPC EUVDEUVD-2026-107218

| CVE-2026-82231 HIGH
Uncaught Exception (CWE-248)
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Reach bRPC h2/gRPC port
  2. Delivery
    Send crafted HEADERS block
  3. Exploit
    Add 121 minimal 33-byte HPACK entries
  4. Execution
    Overflow dynamic-table ring buffer
  5. Impact
    Trip CHECK assertion, abort process

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Exception handling completeness
Exploitation Conditions

The target must be a bRPC server (version < 1.18.0) serving HTTP/2 (h2) or gRPC on a port reachable from an untrusted network; the h2 parser is enabled by default on every bRPC server port and processes the malicious header block during HPACK decoding before any authentication, so no non-default configuration, credentials, or user interaction are required. The specific trigger is the default 4096-byte HPACK dynamic table, which allocates only ~120 ring-buffer slots while eviction is byte-driven, allowing 121 minimal entries to overflow the queue. The principal limiting factor is that the server must actually expose and speak h2/gRPC on a network-reachable port; the flaw is availability-only (process abort) with no code execution or data exposure.

Impact

No CVSS vector, EPSS score, KEV listing, or POC reference is supplied in the input, so the quantitative exploitation signals are entirely absent and risk must be inferred from the technical description. On that basis this is a genuine, straightforwardly triggerable denial-of-service: the HPACK dynamic-table slot accounting bug lets a remote, unauthenticated peer abort the bRPC process by sending 121 minimal 33-byte header entries (121*33 = 3993 <= the default 4096-byte table), hitting CHECK(!_header_queue.full()). The h2 parser is enabled by default on every bRPC server port and runs before any Authenticator check, so there are no privilege or interaction barriers - my assessed vector is AV:N/AC:L/PR:N/UI:N/A:H (7.5 High). Impact is confined to availability (process crash/abort); there is no indication of confidentiality or integrity loss or code execution. Because no EPSS or KEV data exists, widespread active exploitation cannot be asserted - exploitation status is 'no public exploit identified at time of analysis' - but the low attack complexity and absence of authentication make this a real patching priority for any internet- or untrusted-network-facing bRPC h2/gRPC endpoint rather than a high-CVSS-but-low-real-risk theoretical issue.

Exploit ScenarioDerived

An attacker able to reach a bRPC server's h2/gRPC port over an untrusted network sends a single crafted HEADERS block containing 121 minimal (name + empty value) HPACK entries during normal request processing. Because eviction is driven by byte usage rather than slot count, the undersized ring buffer fills and the 121st AddHeader trips a CHECK assertion, aborting the entire server process. No authentication or user interaction is required, though no public exploit code is identified at time of analysis.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 21, 2026

A crafted HPACK header block can abort Apache bRPC 1.17.0 and earlier that serve HTTP/2 (h2) or gRPC on a network-reachable port. The default 4096-byte HPACK dynamic table is sized for 34-byte entries, so only about 120 ring-buffer slots exist while eviction is driven by byte usage; 121 minimal 33-byte headers (3,993 bytes total) are therefore accepted without evicting anything, and the 121st insertion trips CHECK(!_header_queue.full()) and terminates the process. The flaw is availability-only and unauthenticated per the assessed vector (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H) because decoding happens before any Authenticator runs; it is fixed in bRPC 1.18.0, and no CISA KEV listing, EPSS score, or public exploit code was supplied in the input data, so no public exploit has been identified at time of analysis.

RemediationAI

Vendor-released patch: upgrade to Apache bRPC 1.18.0, which sizes the HPACK dynamic table for the 33-byte minimum entry (max_size / (32 + 1)) and preserves at least one ring-buffer slot for very small table sizes; teams that cannot take the release immediately can apply upstream fix PR https://github.com/apache/brpc/pull/3462 (note that a commit/PR backport is not a tagged release, so the patched build must be validated in-house). Because no configuration-only mitigation removes this abort path while h2 is exposed, the practical compensating control is to stop untrusted reachability: restrict bRPC h2/gRPC listeners to trusted networks with firewall rules or front them with a proxy that terminates HTTP/2 and re-originates a sanitized request, accepting the trade-offs of an added hop, extra latency, and loss of end-to-end gRPC semantics such as streaming and peer identity propagation. Running HTTP/1-only listeners on internet-facing ports is an alternative where gRPC is not required, at the cost of losing gRPC/h2 functionality on that endpoint. Track the advisory at https://seclists.org/oss-sec/2026/q4/274 and the project at https://github.com/apache/brpc for backport guidance, and alert on repeated connection aborts from single peers as a detection signal while upgrades are staged.

Affected VersionsENISA

Apache bRPC 0 <1.18.0

Affected Packages

euvd apache_brpc fix: 1.18.0

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

HPACK, the header compression scheme used by HTTP/2, maintains a per-connection dynamic table of header fields. bRPC backs that table with a fixed-size ring buffer whose minimum accounted entry size is 33 bytes (name >= 1 byte, value == 0 bytes, plus 32 bytes of entry overhead); the implementation divides the configured table size by 34 rather than 33, so the default 4096-byte table yields only 4096/34 = 120 usable slots. Eviction in AddHeader is driven by byte accounting against _max_size rather than by slot count, which desynchronizes the two bounds: a peer can insert 121 minimal entries (121 * 33 = 3993 bytes, still <= 4096) without triggering eviction, and the next AddHeader reaches the assertion CHECK(!_header_queue.full()), aborting the process via a failed assertion rather than a recoverable error path. No CWE identifier was supplied in the input, but behaviorally the root cause is a reachable assertion / resource-accounting mismatch (closest classes: CWE-617 and CWE-770) arising from an off-by-one sizing of a bounded queue against a byte-driven eviction policy; the fix sizes the dynamic table as max_size / (32 + 1) and retains at least one ring-buffer slot when max_size is below the minimum entry so initialization cannot fail on malloc(0). This issue was shipped in the same 1.18.0 batch as roughly 35 fixes, including related h2 path defects CVE-2026-78058 (unbounded streams, HPACK bomb, control-frame ack bypass of -socket_max_unwritten_bytes), CVE-2026-78066 (unbounded decompression and wire-declared sizes), and CVE-2026-78334 (missing authentication on streaming RPC frames).

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

vuln.today AI 7.5 HIGH

Default-enabled h2 parser runs pre-authentication over the network with a trivially crafted header block (AV:N/AC:L/PR:N/UI:N); impact is a process crash only, so A:H with C:N/I:N.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Estimated by vuln.today — no official severity rating has been published for this CVE yet.

Lifecycle Timeline

2
Patch available
Oct 21, 2026 - 14:17 EUVD
CVE Published
Oct 21, 2026 - 03:30 oss-security
HIGH

Description PRE-NVD

Disclosed via oss-security. NVD scoring and full description are pending.

Executive ViewAI

Why It Matters

Apache bRPC 1.17.0 and earlier installations that expose HTTP/2 or gRPC on network-reachable ports can be remotely aborted by a crafted HPACK header block, creating a denial-of-service risk for affected services. The flaw is unauthenticated and availability-only, so leadership should prioritize inventory and remediation of externally reachable bRPC endpoints to protect service uptime and customer-facing availability. No public exploit has been identified at time of analysis.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.1%
Top 96% exploitable
Prevalence
Medium
popular open-source Apache RPC framework, concentrated in large-scale backend services
Data Quality
1 sources
Confidence: Low

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy