Read the docs
TI-2026-78753 Aliases CVE-2026-84747GHSA-94r6-xp5c-qwq5

Access control bypass in Apache bRPC via empty URL path segments

Priority LOW 39CWE-436Published · Updated

Key facts

Attack vector
Network
Privileges required
None
User interaction
None
Attack complexity
Low
Impact type
—
Confidentiality · integrity · availability
None · High · None
Fix status
Fixed

Attack profile from CVSS 3.1 · CISA ADP. Fix status from CNA.

Summary

Apache bRPC before 1.18.0 on all platforms has an interpretation conflict (CWE-436) in its HTTP protocol implementation. The path splitter skips empty segments, so paths with consecutive slashes are dispatched like their collapsed form, while a front proxy matches the literal path. The HTTP/2 implementation also did not validate the :path pseudo-header. A remote attacker can use such paths to bypass access control rules enforced by a front proxy where bRPC accepts HTTP or HTTP/2 traffic from that proxy.

Written with Claude Haiku 5.5 from the sources below · 2026-10-30

Description from the CNA

Interpretation conflict in the HTTP protocol implementation in Apache bRPC (version < 1.18.0) on all platforms allows remote attackers to bypass access control rules enforced by a front proxy. Root Cause: The method dispatch function FindMethodPropertyByURI() in bRPC's HTTP protocol splits the request path with a string splitter that skips empty fields, so paths containing empty path segments (consecutive slashes), such as //flags, /flags// and /flags//port, are dispatched to the same method as their collapsed form /flags. Per RFC 3986 these are distinct paths. A front proxy that enforces an ACL (e.g. blocking access to builtin services such as /flags) matches the collapsed form only, and therefore forwards the padded literal to the bRPC server, where it is dispatched as if it were the collapsed form. This differential allows //flags?setvalue= to reach a builtin service that /flags is not allowed to reach. Additionally, the HTTP/2 implementation never validated the :path pseudo-header, so requests without a :path, or with a :path that neither begins with '/' nor is the asterisk-form '*', contrary to RFC 9113 section 8.3.1, were not rejected. Affected Scenarios: Deployments of Apache bRPC behind a front proxy or gateway that performs access control (ACL) decisions on the literal request path, where the bRPC server accepts HTTP or HTTP/2 traffic from that proxy. In such deployments an attacker can send a path containing empty path segments to reach a resource that the front proxy intended to block. 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/3512 Note: After applying the fix, HTTP and HTTP/2 request paths containing empty path segments (consecutive slashes) are rejected by default, and HTTP/2 :path values that are empty or neither begin with '/' nor equal '*' are rejected. Deployments that depend on the previous lenient behavior can restore it by turning on the gflag -http_allow_empty_path_segments, which is not recommended for servers exposed to untrusted traffic.

Why it matters now

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.0046 40th percentileScored 2026-11-08
Fix Fixed Apache bRPC (Apache Software Foundation): 1.18.0

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

VendorProductAffected versionsFixed inStatusSource
ApacheApache bRPCbefore 1.18.01.18.0Patch availableCNA
  • Apache bRPC VendorApache Affected before 1.18.0 Fixed in 1.18.0 Patch available CNA

CPE names Threatist (inferred) · 1

Inferred from how NVD named this product before; not given by a source.

CPEVersionsRoleVendor
cpe:2.3:a:apache:brpc:*:*:*:*:*:*:*:*——Apache
  • cpe:2.3:a:apache:brpc:*:*:*:*:*:*:*:* Versions — — ·Apache

Remediation

Upgrade Apache bRPC to version 1.18.0, which fixes this issue. Alternatively, apply the patch from pull request 3512 in the apache/brpc GitHub repository.

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

  1. 2026-10-21 Threatist record created from CVE-2026-84747
  2. 2026-10-21 Alias added: GHSA-94r6-xp5c-qwq5
  3. 2026-10-30 CVSS score added · CISA ADP
  4. 2026-10-30 CISA SSVC decision points changed

References

  • 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
See all 4053 →

Sources