CVE-2026-56386: Apache bRPC: Integer Underflow and Out-of-Bounds Read in HTTP/2 DATA Frame Parser
Integer underflow and out-of-bounds read in the HTTP/2 server DATA frame parser in Apache bRPC allows an unauthenticated remote attacker to cause denial of service by sending a malformed DATA frame with the PADDED flag set and a zero-length payload.
Root Cause: The HTTP/2 DATA frame handler computed the fragment size from the attacker-controlled payload length and, when the PADDED flag was present, decremented the fragment size before ensuring that the frame contained the mandatory pad length byte. A zero-length padded DATA frame could therefore underflow the unsigned fragment size and read the pad length byte past the end of the frame buffer.
Affected Scenarios: Apache bRPC servers that accept HTTP/2 traffic are affected when a remote client can send crafted HTTP/2 frames to the server. HTTP/2 may be reached through cleartext h2c detection on an HTTP port or through TLS ALPN negotiation.
How to Fix: (Choose one of the following options) 1. Upgrade Apache bRPC to version 1.18.0, which fixes this issue. 2. Apply this patch: https://github.com/apache/brpc/pull/3325
Note: The fix validates that a padded DATA frame has enough payload bytes for the pad length field before decrementing the fragment size or reading the pad length byte. Malformed zero-length padded DATA frames are rejected with HTTP/2 FRAMESIZEERROR.
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?
Apache bRPC servers that accept HTTP/2 traffic are affected if a remote client can send crafted HTTP/2 frames. HTTP/2 can be reachable through cleartext h2c detection on an HTTP port or TLS ALPN negotiation.
Does exploitation require authentication or a valid application request?
No. An unauthenticated remote attacker can trigger the denial of service by sending a malformed HTTP/2 DATA frame with the PADDED flag set and a zero-length payload.
What can be done if an immediate upgrade is not possible?
Apply the patch referenced in the advisory. The fix checks that a padded DATA frame contains enough payload bytes for the pad-length field before decrementing the fragment size.
How can I determine whether a server is vulnerable?
Determine whether the server runs Apache bRPC prior to version 1.18.0 and accepts HTTP/2 traffic from clients. Systems upgraded to version 1.18.0 include the fix.