Skip to main content

Cloudflare Pingora EUVDEUVD-2026-104781

| CVE-2026-105299 HIGH
HTTP Request/Response Smuggling (CWE-444)
2026-10-20 cloudflare GHSA-r9g2-75m7-w9wg
8.7
CVSS 3.1 · Vendor: cloudflare
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Send request with crafted Connection header
  2. Delivery
    Nominate Pingora-added trusted header (X-Forwarded-For)
  3. Exploit
    Pingora forwards nomination unstripped to HTTP/1 intermediary
  4. Execution
    Intermediary strips the trusted header before origin
  5. Impact
    Bypass 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

https://github.com/cloudflare/pingora 0.1.0 <0.9.0

Affected Packages

cargo pingora-proxy fix: 0.9.0
euvd https_github_com_cloudflare_pingora fix: 0.9.0

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

Vendor (cloudflare) PRIMARY 8.7 HIGH
AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:N
vuln.today AI 7.5 HIGH

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).

3.1 AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:L/A:N
4.0 AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:H/SI:L/SA:N

Primary rating from Vendor (cloudflare).

CVSS VectorVendor: cloudflare

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
Changed
Confidentiality
High
Integrity
High
Availability
None

Lifecycle Timeline

2
Patch available
Oct 20, 2026 - 03:01 EUVD
CVE Published
Oct 20, 2026 - 01:07 cve.org
HIGH 8.7

DescriptionCVE.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

Why It Matters

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.

Business Impact: Medium
Compensating Controls

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

EPSS Score
0.3%
Top 75% exploitable
Prevalence
Low
niche open-source Rust proxy framework, limited self-hosted enterprise adoption
Social Media
1
Sightings
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
Medium
Technical Impact
Total

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

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 3

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy