Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSend request with crafted Connection header
-
DeliveryNominate Pingora-added trusted header (X-Forwarded-For)
-
ExploitPingora forwards nomination unstripped to HTTP/1 intermediary
-
ExecutionIntermediary strips the trusted header before origin
-
ImpactBypass origin IP-based authorization
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V4 - API and Web Service HTTP request consistency
|
| Exploitation Conditions | Requires a specific chained topology, not a default deployment: a pre-0.9.0 Pingora proxy forwarding over its HTTP/1 upstream path (the HTTP/2 path already strips Connection and is unaffected), placed in front of a downstream HTTP/1 intermediary that honors Connection nominations (e.g. Go's net/http/httputil.ReverseProxy), where the origin trusts a header that Pingora adds in upstream_request_filter (e.g. X-Forwarded-For for IP-based authorization). Limiting factors: the vulnerable HTTP/1 intermediary and the origin's trust of a Pingora-added header must both be present; deployments on 0.9.0+ with default policy are protected (and remain vulnerable only if they opt into HttpUpstreamRequestPolicy::preserve()); Cloudflare CDN customers are explicitly unaffected because no such chain exists internally and Connection headers are sanitized before reaching Pingora gateways. |
| Impact | Signals are mixed and point to a conditional, not broad, priority. The CVSS 3.1 vector (AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:N, base 8.7) correctly flags AC:H - exploitation is not against a default install but depends on a specific chained topology. No EPSS score was provided and the CVE is NOT in CISA KEV, so there is no evidence of active or widespread exploitation. The reporter demonstrated a working proof-of-concept privately (access to an IP-restricted endpoint via X-Forwarded-For), but no public exploit code was supplied in the input, so this is 'no public exploit identified at time of analysis' rather than confirmed in-the-wild use. No SSVC decision data was provided. The high base score is driven by the authorization-bypass potential (C:H) and scope change (S:C, because the flaw in Pingora undermines the origin's trust boundary), but real-world risk is gated by the requirement that a downstream HTTP/1 intermediary honor Connection nominations AND that the origin trust a Pingora-added header for access control. For deployments without that exact chain - including all Cloudflare CDN customers, per the vendor note - real risk is low. Net: a genuine, verifiable authorization-bypass bug for a specific minority of deployments, not a drop-everything mass-exploitation event. |
| Exploit ScenarioDerived | An attacker sends an HTTP/1 request through a pre-0.9.0 Pingora proxy with a Connection header that nominates a trusted header (e.g. 'Connection: X-Forwarded-For'); Pingora adds X-Forwarded-For in upstream_request_filter but fails to strip the attacker's Connection nomination. A downstream HTTP/1 intermediary (such as Go's httputil.ReverseProxy) honors the nomination and removes the Pingora-set X-Forwarded-For before it reaches the origin, so the origin's IP-based authorization is bypassed. A private PoC exists (reporter-demonstrated), but no public exploit code was provided; AC:H reflects the required multi-hop deployment topology. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 20, 2026
Authorization bypass in Cloudflare Pingora before 0.9.0 can occur only in a chained HTTP/1 deployment where Pingora forwards to a downstream HTTP/1 intermediary that honors Connection-nominated headers and the origin trusts a header Pingora adds, such as X-Forwarded-For. A remote, unauthenticated attacker can use the client Connection header to nominate that trusted header; because the vulnerable HTTP/1 upstream path fails to strip hop-by-hop or nominated headers, the intermediary may remove it and bypass IP-based authorization. No public exploit was identified at time of analysis, Cloudflare CDN customers are explicitly unaffected, and 0.9.0+ default policy removes these headers, so the issue is conditional rather than broadly exploitable.
RemediationAI
Vendor-released patch: pingora 0.9.0 or later. Upgrade to 0.9.0+, which by default removes hop-by-hop and Connection-nominated headers from upstream requests and rejects requests whose Connection header nominates Host, X-Forwarded-For, X-Forwarded-Host, X-Forwarded-Proto, or a pseudo-header; the fix is controlled by PeerOptions::http_upstream_request_policy (HttpUpstreamRequestPolicy), with commits at https://github.com/cloudflare/pingora/commit/28c18e6b6b04dd0bd937234e5950049e6d74cded and https://github.com/cloudflare/pingora/commit/ca23f1668eca8e78be7ba62ef0edbd458b40eeee. Do not select HttpUpstreamRequestPolicy::preserve() when the origin relies on Pingora-added headers, because it restores the vulnerable passthrough behavior; rejecting nominated headers may break non-compliant clients but is necessary to preserve header trust. If you cannot upgrade, strip the Connection header and every header it nominates in upstream_request_filter before adding trusted headers, and restrict exposure of the HTTP/1 upstream path to trusted intermediaries while planning the upgrade.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in cargo, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Pingora is Cloudflare's Rust proxy framework. In HTTP/1.1, the Connection header lists hop-by-hop headers that intermediaries must consume and not forward; RFC 9110 Section 7.6.1 requires removal of Connection, the headers it names, and other hop-by-hop fields. Pingora's HTTP/2 upstream path already removed Connection and HTTP/1-specific headers, but before 0.9.0 the HTTP/1 upstream path passed downstream requests through upstream_request_filter and wrote them upstream without stripping those fields. The root cause is therefore inconsistent header sanitization between protocol paths, not a memory-safety bug; no CWE is assigned in the supplied data. Exploitation depends on a chain: pre-0.9.0 Pingora over HTTP/1 upstream, a downstream HTTP/1 intermediary that honors Connection (for example Go's net/http/httputil.ReverseProxy), and an origin that trusts a Pingora-added header such as X-Forwarded-For for IP authorization. The assessed CVSS:3.1 vector AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:L/A:N reflects a network-reachable, unauthenticated attack with high complexity due to that topology, changed scope, high confidentiality impact from authorization bypass, low integrity impact, and no availability impact. This is the same class as CVE-2022-31813 in Apache HTTP Server.
Know when Https gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:N
Remote and unauthenticated (AV:N/PR:N) but needs a specific chained HTTP/1 deployment (AC:H); the flaw in Pingora subverts the origin's trust authority (S:C), yielding authorization bypass (C:H) with limited request tampering (I:L).
Primary rating from Vendor (cloudflare).
CVSS VectorVendor: cloudflare
Lifecycle Timeline
2DescriptionCVE.org
Summary
Before version 0.9.0, the HTTP/1 upstream path in pingora-proxy passed the downstream request through upstream_request_filter and wrote it to the upstream without removing the client's Connection header, other hop-by-hop headers, or the headers Connection nominated, although RFC 9110 Section 7.6.1 requires intermediaries to remove them. The HTTP/2 upstream path already removed Connection and related HTTP/1-specific headers. A client could therefore nominate a header that the application adds in upstream_request_filter (for example, Connection: keep-alive, X-Forwarded-For). A downstream HTTP/1 intermediary that honors Connection would then strip the Pingora-added header before it reached the origin.
Impact
Specifically affects chained deployments where an HTTP/1 intermediary between Pingora and the origin processes Connection nominations (for example, Go's net/http/httputil.ReverseProxy) and the origin trusts headers added by that intermediary (for example, X-Forwarded-For for IP-based authorization). A remote, unauthenticated attacker can have those headers removed, potentially bypassing authorization. The reporter demonstrated access to an IP-restricted endpoint using X-Forwarded-For for IP validation on the origin. This is the same class of issue as CVE-2022-31813 in Apache HTTP Server.
Note that Cloudflare CDN customers were unaffected, as no such chained deployment as described above exists with internal Pingora services, and Connection headers are sanitized before arriving at Pingora gateways.
Mitigation:
*
Upgrade to pingora 0.9.0 or later. By default, Pingora now removes hop-by-hop and Connection-nominated headers from upstream requests, and rejects requests whose Connection header nominates Host, X-Forwarded-For, X-Forwarded-Host, X-Forwarded-Proto, or a pseudo-header. This is controlled by PeerOptions::http_upstream_request_policy (HttpUpstreamRequestPolicy). Fix commits: https://github.com/cloudflare/pingora/commit/28c18e6b6b04dd0bd937234e5950049e6d74cded , https://github.com/cloudflare/pingora/commit/ca23f1668eca8e78be7ba62ef0edbd458b40eeee
*
Do not use HttpUpstreamRequestPolicy::preserve() if the origin relies on headers added by Pingora; it restores the old passthrough behavior.
*
If you cannot upgrade: in upstream_request_filter, remove the Connection header and every header it nominates before adding trusted headers.
Executive ViewAI
Cloudflare Pingora before 0.9.0 has an authorization bypass that can affect organizations running affected versions in chained HTTP/1 deployments where a downstream intermediary honors Connection-nominated headers and the origin trusts headers such as X-Forwarded-For. The issue is conditional and Cloudflare CDN customers are explicitly unaffected, but affected architectures could allow IP-based authorization to be bypassed; no public exploit identified at time of analysis.
No vendor-released patch identified at time of analysis. Interim mitigations include avoiding chained HTTP/1 deployments where a downstream intermediary honors Connection-nominated headers and the origin trusts headers added by Pingora; configuring intermediaries to strip hop-by-hop and Connection-nominated headers; not using IP-based authorization derived from X-Forwarded-For or similar headers in these chains; and evaluating upgrading to Pingora 0.9.0+ where the default policy removes these headers. Cloudflare CDN customers are explicitly unaffected.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
HTTP request smuggling exploits inconsistencies in how front-end and back-end servers parse HTTP message boundaries.
Related Vulnerabilities in Pingora HTTP/1 and HTTP/2 Processing Flaws
View all 3Remote code execution in the archived Cloudflare pages-action GitHub Action (src/index.ts) allows network-adjacent attac
Authenticated SQL injection in the WP Review Slider Pro WordPress plugin through version 12.6.8 lets Subscriber-level us
SQL injection in the WP Review Slider Pro WordPress plugin (versions ≤12.6.8) allows authenticated attackers with Subscr
Arbitrary file deletion in the WP Review Slider Pro WordPress plugin (versions up to and including 12.6.8) allows authen
SQL injection in the WP Review Slider Pro WordPress plugin (versions up to and including 12.7.2) lets unauthenticated at
EUVD-2026-104781
GHSA-r9g2-75m7-w9wg
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB