CVE-2026-86146
Last modified
CVE-2026-86146 is a high-severity vulnerability rated 7.5/10 on the CVSS scale. Inconsistent interpretation of HTTP requests (HTTP request/response smuggling) in the bundled HTTP/1.1 parser of Apache bRPC (version < 1.18.0) on all platforms allows remote attackers to smuggle requests and inject headers when bRPC is deployed behind a proxy or load balancer that parses the same bytes differently. Root Cause: The bRPC fork of http-parser accepts and acts on several HTTP/1.1 header forms that a conforming front-end either rejects or interprets differently, so the framing or the header set of a message can differ between the front-end and bRPC: 1. A space before the colon of framing headers (e.g. EPSS estimates a 0.20% chance of exploitation in the next 30 days.
Description
Inconsistent interpretation of HTTP requests (HTTP request/response smuggling) in the bundled HTTP/1.1 parser of Apache bRPC (version < 1.18.0) on all platforms allows remote attackers to smuggle requests and inject headers when bRPC is deployed behind a proxy or load balancer that parses the same bytes differently. Root Cause: The bRPC fork of http-parser accepts and acts on several HTTP/1.1 header forms that a conforming front-end either rejects or interprets differently, so the framing or the header set of a message can differ between the front-end and bRPC: 1. A space before the colon of framing headers (e.g. Content-Length : 5) is accepted; the value still drives bRPC's framing while the reported field name contains the trailing space. 2. Interior spaces inside a Content-Length value (e.g. Content-Length: 1 3) are skipped, so bRPC reads 13 where a front-end reads 1 or rejects the message (same class as CVE-2022-32213 in Node.js). 3. Obsolete line folding (obs-fold, RFC 7230 3.2.4) of Content-Length and Transfer-Encoding values is accepted, so a folded framing value drives bRPC's framing while a front-end that does not unfold sees a different message. 4. Chunked trailer fields are fed to the same header callbacks as the header section and are merged into the header map like real headers. A front-end only inspects the header section, so any chunked request can smuggle fields such as Authorization or X-Forwarded-For past it. 5. Transfer-Encoding lists with optional whitespace after a comma (e.g. Transfer-Encoding: gzip, chunked) are not recognized as chunked: such requests are rejected, and responses are read until connection close instead of as chunked, causing response desync. Affected Scenarios: bRPC server or client communicating over HTTP/1.1 with a front proxy, load balancer, or any peer that parses the message independently. An attacker able to send requests through the front-end can desynchronize the two parsers to smuggle requests, forge headers (e.g. Authorization, X-Forwarded-For) via chunked trailers, or desynchronize responses. 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/3521 Note: After applying the fix, the four header forms above are rejected by default and chunked trailers are dropped instead of merged into the header map. Two gflags are provided for compatibility: http_allow_obs_fold=true restores acceptance of folded Content-Length/Transfer-Encoding values, and http_strict_header_token=true additionally rejects spaces inside any header field name (not only the ones that decide framing). Legitimate clients that do not use these obsolete forms are unaffected.
Metrics
Weakness Enumeration
Affected Software
Source: CNA advisory (CVE.org). NVD analysis pending.
| Vendor | Product | Versions |
|---|---|---|
| Apache Software Foundation | Apache bRPC | < 1.18.0 |
References
Timeline
- Published
- Last Modified
- Status
- Deferred
Frequently Asked Questions
What is CVE-2026-86146?
How severe is CVE-2026-86146?
How do I fix CVE-2026-86146?
How Strix Helps
- How Strix found a critical auth bypass in etcdStrix autonomously discovered a critical authentication bypass in etcd, later designated CVE-2026-33413.
- Autonomous PentestingAI agents that find and validate exploitable vulnerabilities like this one across your applications.
- PR ReviewsPentest every pull request so vulnerable code is caught before it ships to production.
- AI Penetration TestingHow AI-driven penetration testing continuously covers your attack surface.
Related CVEs from 2026
- CVE-2026-86140In libxml2 before 2.15.4, xmlSnprintfElements in valid.c has…7.8
- CVE-2026-86141xmlregexp in libxml2 before 2.15.4 has a NULL pointer derefe…3.3
- CVE-2026-86142In libxml2 before 2.15.4, there is a heap-based buffer overf…7.8
- CVE-2026-86143In xmlIO in libxml2 before 2.15.4, an inconsistency in xmlOu…7.3
- CVE-2026-86144In xinclude in libxml2 before 2.15.4, xmlXIncludeProcess and…7.8
- CVE-2026-86145PCRE2 before 10.48 allows a pcre2_dfa_match out-of-bounds wr…8.2
- CVE-2026-86147External control of file name or path and uncontrolled resou…7.5
- CVE-2026-86148A security flaw has been discovered in Tenda CP3 27.5.57.101…9.1
- CVE-2026-86149A weakness has been identified in Tenda CP3 27.5.57.101. Thi…9.1
- CVE-2026-8615The Reviso Exporter for WooCommerce plugin for WordPress is …4.3
- CVE-2026-86150A security vulnerability has been detected in Tenda CP3 27.5…4.1
- CVE-2026-86151A vulnerability was detected in Tenda CP3 27.5.57.101. The a…9.1
Are you affected by CVE-2026-86146?
Run a free Strix scan to check your systems for this vulnerability.
Scan your code nowSource: NVD / NIST
