CVE-2026-82230: Apache bRPC: Stack Exhaustion via Unbounded Recursion in mcpack2pb Parser
Uncontrolled recursion in the mcpack2pb component in Apache bRPC (version < 1.18.0) on all platforms allows remote attackers to make the server crash via sending deeply nested mcpack data.
Root Cause: The bRPC mcpack2pb parser (used to serve nsheadmcpack / ubrpc / publicpbrpc requests) recursively parses nested objects and arrays without any depth limit. For a protobuf message that references itself (e.g. a repeated message field), the generated parser recurses once per nesting level of the incoming mcpack object. A deeply nested request makes the recursion grow unbounded, overflow the stack and crash the process.
Affected Scenarios: Use bRPC server with a recursive-schema protobuf message to serve nsheadmcpack / ubrpc / publicpbrpc requests from untrusted network.
How to Fix: (Choose one of the following options) 1. Upgrade bRPC to version 1.18.0, which fixes this issue. 2. Apply this patch: https://github.com/apache/brpc/pull/3499
Note: No matter which option you choose, you should know that the fix enforces the documented parsing depth limit MAXDEPTH (128) on the parse path, the same limit the serializer already applies. If your requests contain mcpack messages nested deeper than 128 levels, the request will be failed after applying the fix.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Apache bRPCto a version that resolves this vulnerability.Fixed in 1.18.0
Event History
Frequently Asked Questions
Which deployments are exposed to this issue?
bRPC servers earlier than 1.18.0 are exposed when they use a recursive-schema protobuf message to serve nshead_mcpack, ubrpc, or public_pbrpc requests from an untrusted network.
What must an attacker send to trigger the crash?
An attacker must send deeply nested mcpack data for a protobuf message that can reference itself, such as one containing a repeated message field. Each nesting level causes another parser recursion until the process stack is exhausted.
What is the practical impact of successful exploitation?
Successful exploitation crashes the bRPC server process through stack exhaustion. The described impact is a denial of service.
What can be done if an immediate upgrade is not possible?
Apply the referenced bRPC patch. Both the patch and upgrading to 1.18.0 enforce the documented MAX_DEPTH parsing limit of 128 on the affected parse path.