Uncontrolled resource consumption in Apache bRPC streaming RPC
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Denial of service
- Confidentiality · integrity · availability
- None · None · High
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CISA ADP. Fix status from CNA. Impact type from CWE-400.
Summary
Apache bRPC versions before 1.18.0 are affected. The streaming RPC component accepts every stream identifier declared in a single request without any limit, and each accepted stream allocates its own execution queue and resources (CWE-400). A remote attacker can send one crafted RPC request to exhaust server memory and cause a denial of service.
Written with Claude Haiku 5.5 from the sources below · 2026-10-30
Description from the CNA
Uncontrolled resource consumption in the streaming RPC component of Apache bRPC (version < 1.18.0) allows a remote attacker to exhaust server memory and cause denial of service by sending a single RPC request that declares an excessive number of streams. Root Cause: In the streaming RPC feature, a client can declare multiple streams in one RPC request by putting extra stream identifiers into the repeated field `stream_settings.extra_stream_ids` of the RPC meta. On the server side, `StreamAccept` creates one response stream for every stream identifier declared by the request, without limiting the number of streams accepted in a single RPC. The request body size is only bounded by `max_body_size` (default 64MB), which is enough to carry millions of stream identifiers. Each accepted stream allocates its own bthread execution queue and associated resources, so a single crafted request can make the server create a huge number of streams and exhaust memory, leading to denial of service. Affected Scenarios: Use a bRPC server that serves streaming RPC and calls `StreamAccept` to accept streams from untrusted clients. How to Fix: (Choose one of the following options) 1. Upgrade bRPC to the 1.18.0 version. 2. Apply this patch: https://github.com/apache/brpc/pull/3493 Note: The fix adds a new gflag `stream_max_streams_per_request` with a default value of 64. Requests declaring more streams than the limit are rejected before any response stream is created. Applications that legitimately need to accept more than 64 streams in one RPC must raise this flag; otherwise such requests will fail after applying the fix.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- Yes
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
Remediation
Upgrade Apache bRPC to version 1.18.0. Alternatively, apply the patch from pull request 3493 in the apache/brpc repository, which adds the gflag stream_max_streams_per_request with a default of 64. Applications that legitimately need more than 64 streams in one RPC must raise this flag.
Written with Claude Haiku 5.5 from the sources below · 2026-10-30
- Fix · CNA Apache bRPC (Apache Software Foundation) Fixed in 1.18.0
Fixed in the same release
Records fixed by the same vendor advisory or release, as the CNA lists them.
- Advisory ·
Apache bRPC — lists.apache.org/thread/2pf15ojj0vr7rtx95677kgtl1mx3gdgb
35 records Highest priority Priority MEDIUM 18 MEDIUM, 17 LOW
Other records, highest priority first
- TI-2026-78552 Out-of-bounds write in Apache bRPC Redis command parserPriority MEDIUM 49
- TI-2026-78757 Authentication bypass in Apache bRPC servers using internal_portPriority MEDIUM 48
- TI-2026-78742 Missing authentication in Apache bRPC streaming RPC framesPriority MEDIUM 48
Timeline
- 2026-10-21 Threatist record created from CVE-2026-81755
- 2026-10-21 Alias added: GHSA-74m8-q5wc-qpjc
- 2026-10-30 CVSS score added · CISA ADP
- 2026-10-30 CISA SSVC decision points changed
- 2026-10-31 EPSS moved to the 50th–90th percentile
- 2026-11-01 Priority changed: LOW → MEDIUM
References
More Apache vulnerabilities
- TI-2025-18529 Apache Tomcat: Potential RCE and/or information disclosure and/or information corruption with partial PUT KEVCVSS 3.1CRITICAL 10.0
- TI-2024-30292 Apache OFBiz: Confused controller-view authorization logic (forced browsing) KEVCVSS 3.1CRITICAL 9.8
- TI-2024-26062 Apache OFBiz: Unauthenticated endpoint could allow execution of screen rendering code KEVCVSS 3.1CRITICAL 9.8
- TI-2024-21190 Apache OFBiz: Path traversal leading to RCE KEVCVSS 3.1CRITICAL 9.8
- TI-2024-18186 Apache HugeGraph-Server: Command execution in gremlin KEVCVSS 3.1CRITICAL 9.8
- TI-2023-25106 Deserialization of untrusted data in Apache ActiveMQ KEVCVSS 3.1CRITICAL 10.0
Sources
- CVE-2026-81755 · CVE Program
- CVE-2026-81755 · NVD
- FIRST EPSS
- GHSA-74m8-q5wc-qpjc · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences