---
id: "CVE-2026-54425"
kind: "vulnerability"
aliases: ["CVE-2026-54425"]
title: "Apache bRPC: HTTP/2 header decoding recursion lets remote attackers crash servers"
severity: "high"
cvss: null
epss: 0.00257
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["apache-brpc", "c++", "http2", "package"]
not_affected_if: ["no-http2", "trusted-network-only"]
published_at: "2026-10-21T12:17:21+00:00"
first_seen_at: "2026-10-23T21:57:28+00:00"
updated_at: "2026-10-25T05:02:51+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-54425", "first_seen_at": "2026-10-23T21:57:28+00:00"}, {"source": "epss", "url": "https://api.first.org/data/v1/epss?cve=CVE-2026-54425", "first_seen_at": "2026-10-24T13:15:54+00:00"}]
---

# Apache bRPC: HTTP/2 header decoding recursion lets remote attackers crash servers

Apache bRPC's built-in HTTP/2 HPACK decoder recurses once per Dynamic Table Size Update entry without a depth limit. A crafted header block with many such entries exhausts the thread stack and takes the service down.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check the bRPC version in use, for example with `grep -ri brpc` in the build files or `ldd` on the binary for the brpc library.
- Confirm whether the service enables the built-in HTTP/2 implementation and accepts traffic from untrusted networks.

## Fix

- Upgrade bRPC to `1.18.0` or later.
- Alternatively apply the patch from https://github.com/apache/brpc/pull/3343.

## Timeline

- 2026-10-23T21:57:28+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-54425
- 2026-10-24T13:15:54+00:00 epss https://api.first.org/data/v1/epss?cve=CVE-2026-54425

## From the sources

Uncontrolled recursion in the HTTP/2 HPACK decoder in Apache bRPC before 1.18.0 allows remote attackers to cause denial of service by sending a crafted HTTP/2 header block containing many consecutive Dynamic Table Size Update entries. Each update was decoded by recursively invoking the HPACK decoder, which could exhaust the thread stack before a header field or end of input was reached.

Root Cause:
The bRPC HPACK decoder recursively decoded the next entry after processing a Dynamic Table Size Update. The decoder did not bound the recursion depth, so a long sequence of update entries could consume excessive stack space.

Affected Scenarios:
Use bRPC with the built-in HTTP/2 implementation to accept HTTP/2 traffic from an untrusted network.

How to Fix:
1. Upgrade bRPC to version 1.18.0, which fixes this issue.
2. Apply this patch:  https://github.com/apache/brpc/pull/3343 

Note:
The fix changes HPACK Dynamic Table Size Update decoding to use iterative parsing instead of recursive parsing.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
