CVE-2026-78066
HighCVSS 7.5Exploitation Probability (EPSS)
Low risk44th percentile - higher than 44% of all known CVEs
Summary
Resource exhaustion vulnerability in Apache bRPC versions before 1.18.0 affects multiple parsers that accept wire-controlled input. The gzip/zlib/snappy decompressors enforce no output limit, and the AMF, RTMP, sofa-pbrpc, and mcpack2pb parsers trust wire-declared sizes, allowing attackers to cause disproportionate memory use and crash the process.
Risk Assessment
An attacker can send a crafted request to a bRPC service, causing memory exhaustion and denial of service. The risk applies to any organization exposing bRPC services to untrusted clients.
Recommendation
Upgrade Apache bRPC to version 1.18.0 or apply the patch from PR #3476. After the fix, consider adjusting the -max_decompressed_body_size and max_body_size flags if larger values are legitimately required.
Other vulnerabilities in Apache bRPC
See all- CVE-2026-86249Critical
On a brpc::Server that sets both ServerOptions.auth and ServerOptions.internal_port, the HTTP built-in service exemption on internal_port can be abused to bypass authentication entirely. Verification runs only for the first message of a connection and the result latches the connection, so a request such as GET /status to internal_port authenticates the whole connection.
- CVE-2026-78334Critical
Missing authentication in the streaming RPC path of Apache bRPC (version < 1.18.0) allows a remote attacker to bypass server authentication and inject or deliver streaming frames when a server is configured with an Authenticator. Streaming frames never pass through the authentication hook, and streams can be impersonated by another socket carrying the same id.
- CVE-2026-56388Critical
The Redis server command parser in Apache bRPC accepts an empty RESP array as a command header. A remote unauthenticated attacker can send an empty array header followed by a bulk string, causing an out-of-bounds write in the parser and crashing the process.
- CVE-2026-48830Critical
Improper authentication in Apache bRPC through 1.17.0 allows a remote unauthenticated attacker to bypass authentication for protected builtin HTTP endpoints by first sending a builtin HTTP request on the same HTTP/1.1 keep-alive connection. When ServerOptions.auth is enabled and builtin HTTP services are publicly exposed, the first builtin request may mark the connection as authenticated for later requests.
- CVE-2025-60021Critical
Remote command injection vulnerability in heap profiler builtin service in Apache bRPC (all versions < 1.15.0) on all platforms allows attacker to inject remote command. Root Cause: The bRPC heap profiler built-in service (/pprof/heap) does not validate the user-provided extra_options parameter and executes it as a command-line argument. Attackers can execute remote commands using the extra_options parameter. Affected scenarios: Use the built-in bRPC heap profiler service to perform jemalloc memory profiling. How to Fix: we provide two methods, you can choose one of them: 1. Upgrade bRPC to version 1.15.0. 2. Apply this patch ( https://github.com/apache/brpc/pull/3101 ) manually.
- CVE-2023-31039Critical
Apache bRPC < 1.5.0 on all platforms allows attackers to execute arbitrary code via the ServerOptions::pid_file parameter. An attacker who can influence this parameter when starting the bRPC server can execute arbitrary code with the permissions of the bRPC process.
- CVE-2026-90484Medium
The MySQL client response parser in Apache bRPC dereferences a null pointer when the server peer sends a zero-payload-length response packet. A packet with declared zero payload length passes the frame-length check, after which the parser reads the response type byte via an unbounded 5-byte fetch that returns nullptr, causing type = p[4] to dereference it and crash the client process.
- CVE-2026-87849Medium
A vulnerability in the Discovery naming-service reply parser in Apache bRPC (versions < 1.18.0) calls RapidJSON object-only accessors (FindMember) on JSON values without first validating that they are objects. A malformed Discovery response whose data/service members or instances list contain non-object entries triggers an out-of-bounds read and potentially crashes the bRPC client.
- CVE-2026-86147High
Apache bRPC versions before 1.18.0 expose builtin /flags and /pprof services that allow a remote attacker to change dump paths (bvar_dump_file, bvar_dump_tabs, mbvar_dump_file) and create directories or overwrite files with the server process privileges. Additionally, the ?seconds= parameter in /pprof is not clamped, enabling an attacker to hold the process-wide CPU profiler for an arbitrarily long time.
- CVE-2026-86146High
HTTP request/response smuggling vulnerability in Apache bRPC versions < 1.18.0 stems from inconsistent HTTP/1.1 header parsing in its bundled parser. bRPC accepts malformed header forms (space before colon, spaces in Content-Length values, obs-fold, chunked trailers merged as headers, Transfer-Encoding lists with whitespace), allowing attackers to smuggle requests or headers when bRPC is deployed behind a proxy or load balancer.
Original NVD description (English source)
Resource exhaustion in Apache bRPC (version < 1.18.0) on all platforms: multiple parsers that accept wire-controlled input bound no limit on the sizes declared by the client or on decompressed output, which attackers can use to drive disproportionate memory use and crash the process. Root Cause: 1) The gzip/zlib/snappy decompressors enforce no output limit: -max_body_size is checked against the compressed bytes only, so a cap-compliant body (e.g. 64 MiB) can decompress to tens of GiB. 2) The AMF string readers allocate the declared length before the bytes are actually available. 3) RTMP chunk headers may re-declare a message length mid-stream; the declared length was never bounded and the partial reassembly buffer kept growing. 4) The sofa-pbrpc parser does not bound meta_size. 5) mcpack2pb trusts wire-declared item counts for Reserve() and a string value_size of 0 underflows the buffer size, aborting the process. Affected Scenarios: Any bRPC service accepting gzip/zlib/snappy-compressed bodies or rtmp, sofa-pbrpc, or mcpack2pb messages from untrusted clients. 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/3476 Note: After the fix, requests whose decompressed size, RTMP message length, or mcpack declared count exceed the new limits are rejected. Operators who legitimately need larger values can raise the corresponding flag (-max_decompressed_body_size, max_body_size).
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

