Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach server with ubrpc mcpack2 adaptor enabled
-
DeliverySend nshead request with zero value_size string field
-
ExploitUnderflow in UnparsedValue::as_string() (_size-1
-
ExecutionSIZE_MAX)
-
PersistUncaught std::length_error on parse path
-
ImpactProcess 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
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
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
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).
Primary rating from Vendor (apache).
Lifecycle Timeline
1DescriptionCVE.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:
- Upgrade bRPC to a version that includes this fix.
- Apply the patch in PR https://github.com/apache/brpc/pull/3450
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
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.
More in Apache Brpc
View allDenial of service in Apache bRPC servers that accept HTTP/2 traffic is caused by a malformed DATA frame with the PADDED
Remote unauthenticated denial of service affects Apache bRPC versions before 1.18.0 when the optional RTMP service is en
Memory exhaustion in Apache bRPC versions prior to 1.18.0 lets remote attackers force excessive preallocation on servers
TLS endpoint impersonation in Apache bRPC before 1.18.0 allows an on-path attacker who can redirect or intercept a clien
Remote denial of service affects Apache bRPC deployments before 1.18.0 when built on platforms where plain char is unsig
Memory exhaustion denial of service in Apache bRPC before 1.18.0 allows remote unauthenticated peers to push buffered me
Memory and CPU exhaustion in Apache bRPC's Redis-protocol handler lets remote unauthenticated clients inflate server res
Out-of-bounds write in Apache bRPC's Redis RESP parser allows remote unauthenticated attackers who can reach a bRPC serv
Memory exhaustion in Apache bRPC's RTMP AMF parser allows unauthenticated remote attackers to consume excessive resource
Denial of service in Apache bRPC before 1.18.0 allows an unauthenticated remote RTMP peer to crash the bRPC process by s
Remote denial of service in Apache bRPC (versions before 1.18.0) allows a malicious, compromised, or faulty Redis server
Remote unauthenticated denial of service in Apache bRPC before 1.18.0 allows attackers to exhaust the server thread stac
EUVD-2026-107180
GHSA-9644-97m2-4fc3
CVE.org
EPSS
Exploit-DB