Skip to main content

Apache bRPC EUVDEUVD-2026-107180

| CVE-2026-74755 MEDIUM
Integer Underflow (CWE-191)
2026-10-21 apache GHSA-9644-97m2-4fc3
View

Attack ChainAIDerived

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

  1. Access
    Reach server with ubrpc mcpack2 adaptor enabled
  2. Delivery
    Send nshead request with zero value_size string field
  3. Exploit
    Underflow in UnparsedValue::as_string() (_size-1
  4. Execution
    SIZE_MAX)
  5. Persist
    Uncaught std::length_error on parse path
  6. Impact
    Process aborts (SIGABRT), service denial

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Integer underflow checks
Exploitation Conditions

Exploitation requires the target bRPC server (version < 1.18.0) to be explicitly configured to accept nshead frames wired to the ubrpc mcpack2 adaptor - specifically the NsheadService + UbrpcMcpack2Adaptor deployment pattern. This is a non-default, operator-enabled configuration: stock open-source bRPC registers the ubrpc/nshead_mcpack protocols as client-only, so default server deployments are not exploitable. When that adaptor IS enabled, no authentication or user interaction is needed - a single crafted request with a zero value_size string field triggers the crash. The primary limiting factor is thus the non-default server configuration; secondary limits are the version ceiling (fixed in 1.18.0 / PR #3450) and that impact is confined to availability (process abort), with no code execution or data exposure.

Impact

This is a moderate-severity denial-of-service issue whose real-world risk is sharply constrained by deployment configuration rather than by raw reachability. No CVSS vector, EPSS score, KEV listing, or POC is present in the input, so quantitative exploitation-probability signals are entirely absent and cannot be compared - this assessment rests on the description and CWE-191 alone. The flaw is remotely triggerable by a single unauthenticated request (one crafted mcpack2 string field with value_size=0 underflows to SIZE_MAX in UnparsedValue::as_string(), causing an uncaught std::length_error and SIGABRT), which argues for network-facing severity. However, the vendor explicitly states that stock open-source bRPC registers the ubrpc/nshead_mcpack protocols as client-only, so DEFAULT server builds are NOT affected - only servers deliberately wired to NsheadService + UbrpcMcpack2Adaptor are exposed. Impact is limited to availability (process abort); there is no confidentiality or integrity loss and no indication of RCE. Net: treat as a real priority only for the subset of operators who have enabled the nshead/mcpack2 server adaptor; for everyone else on default configurations this is a high-CVSS-shaped-but-low-real-exposure issue. No conflicting signals were found, but the near-total absence of exploitation telemetry (no EPSS/KEV/POC) means prioritization should be driven by whether the vulnerable adaptor is actually deployed.

Exploit ScenarioDerived

An attacker who can reach a bRPC server that has been configured with the NsheadService + UbrpcMcpack2Adaptor pattern sends a single unauthenticated nshead/mcpack2 request containing a string field whose value_size is 0. During request parsing, UnparsedValue::as_string() computes _size - 1, underflowing to SIZE_MAX, which makes resize() throw an uncaught std::length_error and aborts the process. No public exploit identified at time of analysis, though the trigger is trivial to reproduce from the description.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% 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 single unauthenticated request can abort an Apache bRPC server (versions before 1.18.0) that has been explicitly configured to accept nshead frames through the ubrpc mcpack2 adaptor, because an integer underflow in UnparsedValue::as_string() turns a zero-length string field into a SIZE_MAX resize() call whose uncaught std::length_error terminates the process with SIGABRT. Per the independent assessment this rates CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H, but the reachable surface is non-default: stock open-source bRPC registers the ubrpc/nshead_mcpack protocols as client-only, so only deployments following the NsheadService + UbrpcMcpack2Adaptor pattern are exposed. No public exploit code or confirmed active exploitation was identified at time of analysis, and impact is confined to availability - no code execution or data exposure is described.

RemediationAI

Upgrade to Apache bRPC 1.18.0 or later, which incorporates the fix from https://github.com/apache/brpc/pull/3450; the Apache advisory at https://lists.apache.org/thread/2pf15ojj0vr7rtx95677kgtl1mx3gdgb should be consulted for the official release guidance. If upgrading cannot be scheduled immediately, the most effective compensating control is to stop exposing the vulnerable parse path: remove the ubrpc mcpack2 adaptor from NsheadService-based servers or move those services behind a front-end that rejects nshead/mcpack2 frames, at the cost of losing that legacy RPC compatibility. Additionally, network-restrict the affected listeners to known client address ranges using ACLs or a service mesh, and run the bRPC process under a supervisor that restarts on SIGABRT so a successful crash does not become a sustained outage - noting these reduce reachability and blast radius but do not eliminate the flaw. Deployments that never enabled the nshead/ubrpc mcpack2 adaptor need no emergency action beyond routine upgrade tracking.

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

bRPC's mcpack2pb layer converts mcpack2-encoded payloads into protocol buffers using an UnparsedValue abstraction that lazily materializes fields. In src/mcpack2pb/parser.cpp, UnparsedValue::as_string() sizes its output buffer as _size - 1, where _size is the value_size of the string field copied straight from untrusted network data. This is CWE-191 (integer underflow): because size_t is unsigned, a value_size of zero wraps to SIZE_MAX, and the following std::string::resize() throws std::length_error. The request-parsing path does not catch that exception, so it propagates out and aborts the process (SIGABRT). The vulnerable path is only wired up when an operator exposes nshead framing through the ubrpc mcpack2 adaptor (the NsheadService + UbrpcMcpack2Adaptor pattern); the CPE cpe:2.3:a:apache_software_foundation:apache_brpc identifies the Apache Software Foundation distribution, with all versions below 1.18.0 affected across platforms.

Know when Apache Brpc 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

Vendor (apache) PRIMARY MEDIUM
vuln.today AI 7.5 HIGH

Single unauthenticated network request triggers the crash (AV:N/AC:L/PR:N/UI:N); the non-default adaptor requirement is a deployment precondition, impact is availability-only (C:N/I:N/A:H).

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:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (apache).

Lifecycle Timeline

1
Patch available
Oct 21, 2026 - 13:02 EUVD

DescriptionCVE.org

An integer underflow in the mcpack2pb component of Apache bRPC (version < 1.18.0) on all platforms allows remote attackers to crash a bRPC server by sending a request containing a string field with a zero value_size. The UnparsedValue::as_string() function computes _size - 1 without validating _size; when value_size is 0 the expression underflows to SIZE_MAX, resize() throws std::length_error, and because the exception is not caught on the request parsing path the process aborts (SIGABRT).

Root Cause: In src/mcpack2pb/parser.cpp, UnparsedValue::as_string() resizes the output string to _size - 1, where _size is the value_size of a string field taken directly from the network data. A value_size of 0 underflows the unsigned size_t, and the subsequent resize() throws an exception that is not caught.

Affected Scenarios: bRPC servers that accept nshead frames wired to the ubrpc mcpack2 adaptor (for example the NsheadService + UbrpcMcpack2Adaptor deployment pattern) can be crashed by a single unauthenticated request. Stock open-source bRPC registers the ubrpc/nshead_mcpack protocols as client-only, so default server configurations are not affected.

How to Fix:

  1. Upgrade bRPC to a version that includes this fix.
  2. Apply the patch in PR  https://github.com/apache/brpc/pull/3450

Threat Intelligence Overview

EPSS Score
0.2%
Top 90% exploitable
Prevalence
Low
niche high-performance C++ RPC framework, limited production footprint
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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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

Integer overflow occurs when an arithmetic operation produces a result that exceeds the maximum value a given integer type can store.

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

CVE-2026-56386 HIGH
7.5 Oct 21

Denial of service in Apache bRPC servers that accept HTTP/2 traffic is caused by a malformed DATA frame with the PADDED

CVE-2026-74758 HIGH
Oct 21

Remote unauthenticated denial of service affects Apache bRPC versions before 1.18.0 when the optional RTMP service is en

CVE-2026-74757 HIGH
Oct 21

Memory exhaustion in Apache bRPC versions prior to 1.18.0 lets remote attackers force excessive preallocation on servers

CVE-2026-66392 MEDIUM
Oct 21

TLS endpoint impersonation in Apache bRPC before 1.18.0 allows an on-path attacker who can redirect or intercept a clien

CVE-2026-61916 MEDIUM
Oct 21

Remote denial of service affects Apache bRPC deployments before 1.18.0 when built on platforms where plain char is unsig

CVE-2026-61902 MEDIUM
Oct 21

Memory exhaustion denial of service in Apache bRPC before 1.18.0 allows remote unauthenticated peers to push buffered me

CVE-2026-58064 HIGH
Oct 21

Memory and CPU exhaustion in Apache bRPC's Redis-protocol handler lets remote unauthenticated clients inflate server res

CVE-2026-56388 HIGH
Oct 21

Out-of-bounds write in Apache bRPC's Redis RESP parser allows remote unauthenticated attackers who can reach a bRPC serv

CVE-2026-56387 HIGH
Oct 21

Memory exhaustion in Apache bRPC's RTMP AMF parser allows unauthenticated remote attackers to consume excessive resource

CVE-2026-54427 HIGH
Oct 21

Denial of service in Apache bRPC before 1.18.0 allows an unauthenticated remote RTMP peer to crash the bRPC process by s

CVE-2026-54426 HIGH
Oct 21

Remote denial of service in Apache bRPC (versions before 1.18.0) allows a malicious, compromised, or faulty Redis server

CVE-2026-54425 HIGH
Oct 21

Remote unauthenticated denial of service in Apache bRPC before 1.18.0 allows attackers to exhaust the server thread stac

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