Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach ubrpc mcpack endpoint
-
DeliverySend crafted mcpack request
-
ExploitDeclare array item_count 0x7fffffff
-
ExecutionParser preallocates ~16GB via Reserve()
-
PersistProcess aborts (SIGABRT)
-
ImpactService denial
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 | Exploitation requires the server to be deployed in the Baidu ubrpc pattern - a NsheadService wired to UbrpcMcpack2Adaptor that parses incoming requests using code generated by the mcpack2pb protoc plugin; stock bRPC servers not using this adaptor are not affected. Given that config, no authentication is needed because the request body is parsed before authentication (per the advisory), and the trigger is a single crafted mcpack request whose array header declares an oversized item count (e.g., 0x7fffffff). Limiting factors: the vulnerable mcpack2pb/ubrpc wiring is non-default, and the process abort (SIGABRT) realistically materializes only on memory-constrained hosts or those with restrictive memory-overcommit limits, since the 16GB is preallocated virtual memory. |
| Impact | This is an availability-only denial-of-service issue (CWE-770, uncontrolled resource allocation) with limited corroborating signals: no CVSS score or vector is provided in the input, no EPSS probability is available, the CVE is not listed in CISA KEV, and no public exploit code is referenced - exploitation status is therefore 'no public exploit identified at time of analysis.' The advisory (Apache mailing-list thread) states the mcpack request body is parsed before authentication, which raises exposure for any server running the affected deployment pattern; however, the impact is confined to memory exhaustion that 'may abort the process (SIGABRT) on memory-constrained hosts,' so the worst case is a crash/DoS rather than code execution or data compromise. Two factors materially lower real-world priority despite the pre-auth reach: (1) exploitation requires the specific, non-default Baidu ubrpc wiring (NsheadService + UbrpcMcpack2Adaptor + mcpack2pb-generated parsing code), not a stock bRPC server; and (2) the ~16GB figure is virtual-memory preallocation, so the crash is conditional on host memory limits/overcommit settings. Net: a legitimate patch-worthy bug for the narrow set of deployments using the ubrpc pattern, but not a broad high-risk emergency. NOTE: because no CVSS vector was supplied, authentication requirements cannot be confirmed from a scored vector; the 'parsed before authentication' claim comes from the advisory description only. |
| Exploit ScenarioDerived | A remote attacker sends a single crafted mcpack request to a bRPC server exposing the ubrpc (NsheadService/UbrpcMcpack2Adaptor) endpoint, setting the array header's item count to a huge value such as 0x7fffffff. The mcpack2pb-generated parser trusts that count and calls Reserve() to preallocate roughly 16GB for a repeated protobuf field, exhausting memory and potentially aborting the process (SIGABRT) before authentication occurs. No public proof-of-concept is referenced, but the trigger is a simple malformed request requiring no privileges. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 21, 2026
Memory exhaustion in Apache bRPC versions prior to 1.18.0 lets remote attackers force excessive preallocation on servers that terminate Baidu ubrpc traffic through a NsheadService wired to UbrpcMcpack2Adaptor and parse it with code generated by the mcpack2pb protoc plugin. Because the mcpack request body is parsed before authentication (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H), a single unauthenticated request declaring an array item count such as 0x7fffffff can drive roughly 16GB of virtual memory reservation and may abort the process (SIGABRT) on memory-constrained hosts, making this an availability-only denial of service (CWE-770). There is no CVSS score or EPSS probability in the source data, the CVE is not in CISA KEV, and no public exploit code is referenced, so exploitation status is no public exploit identified at time of analysis; the vulnerable adaptor wiring is non-default, so stock bRPC servers that do not use it are unaffected.
RemediationAI
Vendor-released patch: upgrade to Apache bRPC 1.18.0, which caps the mcpack array item count to the remaining bytes of the array payload and eliminates the oversized Reserve() call. If an immediate upgrade is not possible, apply the upstream fix at https://github.com/apache/brpc/pull/3451, which implements the same bound; verify the patched generated code rejects counts larger than the available array bytes before allocating. As a configuration-level compensating control, remove the exposure entirely by not wiring NsheadService to UbrpcMcpack2Adaptor and migrating those endpoints to a protocol path that does not use mcpack2pb-generated parsing - the trade-off is loss of ubrpc/mcpack compatibility for legacy Baidu clients, requiring client-side protocol changes. Where the adaptor must remain temporarily, constrain the blast radius with cgroup/systemd memory limits and a max memory-overcommit policy so an oversized reservation fails the single process rather than destabilizing the host, accepting that the affected worker will still crash and serve errors; front the service with connection/rate limiting and restrict the listening port to trusted client networks via firewall or mTLS-terminating proxy, which reduces but does not remove the risk since the trigger is a single small request. Monitor for repeated SIGABRT/oom-kill events on the bRPC worker as a detection signal for attempted exploitation.
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, and mcpack is Baidu's binary serialization format used by the legacy ubrpc protocol. The mcpack2pb protoc plugin generates conversion code that maps mcpack structures onto protobuf messages; for repeated fields it trusts the item count stored in the mcpack array header and passes that value to the protobuf container's Reserve() to preallocate storage. The generated code never cross-checks the declared count against the actual number of bytes remaining in the array payload, so a header claiming 0x7fffffff items causes an enormous up-front allocation before any per-element parsing or validation can occur. This is the classic CWE-770 (Allocation of Resources Without Limits or Throttling) pattern: an attacker-controlled length field drives resource consumption directly. The companion fix (upstream PR apache/brpc#3451) caps the array item count to the number of remaining bytes in the array payload, restoring the invariant that the declared count cannot exceed what the wire data could possibly contain. Exposure is limited to the Baidu ubrpc deployment pattern where NsheadService is wired to UbrpcMcpack2Adaptor and incoming requests are decoded with mcpack2pb-generated code; other bRPC protocol paths do not exercise the vulnerable conversion logic.
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
Remotely reachable and parsed pre-authentication (AV:N/PR:N/UI:N) with a trivially crafted request (AC:L); impact is a process crash/DoS only, so C:N/I:N and A:H with no scope change.
Primary rating from Vendor (apache).
Lifecycle Timeline
2DescriptionCVE.org
Uncontrolled resource allocation in the mcpack2pb component in Apache bRPC (version < 1.18.0) on all platforms allows remote attackers to make the server allocate a large amount of memory via sending a crafted mcpack request with a huge array item count.
Root Cause: The bRPC mcpack2pb parser trusts the item count stored in the mcpack array header without validating it against the actual payload size. The code generated by the mcpack2pb protoc plugin uses this count to preallocate memory for repeated protobuf fields via Reserve(). A malformed request declaring item_count = 0x7fffffff can force the server to preallocate about 16GB of virtual memory, which may abort the process (SIGABRT) on memory-constrained hosts.
Affected Scenarios: Use a bRPC server that wires a NsheadService to UbrpcMcpack2Adaptor (the Baidu ubrpc deployment pattern) and parses requests with code generated by the mcpack2pb protoc plugin. The request body is parsed before authentication.
How to Fix: (Choose one of the following options)
- Upgrade bRPC to version 1.18.0, which fixes this issue.
- Apply this patch: https://github.com/apache/brpc/pull/3451
Note: No matter which option you choose, you should know that the fix caps the array item count to the remaining bytes of the array payload.
Executive ViewAI
Apache bRPC releases before 1.18.0 can be driven into memory exhaustion and process termination by remote unauthenticated traffic when the optional Baidu ubrpc/mcpack adaptor path is exposed; the risk is concentrated in organizations that have deployed that non-default integration, not in standard bRPC installations. No public exploit identified at time of analysis, but a single crafted request could still disrupt availability for dependent services, so leadership should prioritize inventory and containment of exposed instances.
No vendor-released patch identified at time of analysis. Restrict network reachability to affected ubrpc/NsheadService endpoints; disable UbrpcMcpack2Adaptor and mcpack2pb-based parsing where not required; place authentication, rate limiting, and request-size controls in front of exposed services; enforce memory limits and process isolation with automatic restart and monitoring for SIGABRT/memory spikes; segment affected bRPC services from untrusted networks.
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.
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
A single unauthenticated request can abort an Apache bRPC server (versions before 1.18.0) that has been explicitly confi
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-107181
GHSA-px5f-q4rm-r7jp
CVE.org
EPSS
Exploit-DB