Description
A cache poisoning vulnerability has been found in the Pingora HTTP proxy framework’s default cache key construction. The issue occurs because the default HTTP cache key implementation generates cache keys using only the URI path, excluding critical factors such as the host header (authority). Operators relying on the default are vulnerable to cache poisoning, and cross-origin responses may be improperly served to users.


Impact

This vulnerability affects users of Pingora's alpha proxy caching feature who relied on the default CacheKey implementation. An attacker could exploit this for:

* Cross-tenant data leakage: In multi-tenant deployments, poison the cache so that users from one tenant receive cached responses from another tenant


* Cache poisoning attacks: Serve malicious content to legitimate users by poisoning shared cache entries




Cloudflare's CDN infrastructure was not affected by this vulnerability, as Cloudflare's default cache key implementation uses multiple factors to prevent cache key poisoning and never made use of the previously provided default.


Mitigation:

We strongly recommend Pingora users to upgrade to Pingora v0.8.0 or higher, which removes the insecure default cache key implementation. Users must now explicitly implement their own callback that includes appropriate factors such as Host header, origin server HTTP scheme, and other attributes their cache should vary on.


Pingora users on previous versions may also remove any of their default CacheKey usage and implement their own that should at minimum include the host header / authority and upstream peer’s HTTP scheme.
Published: 2026-03-04
Score: 8.4 High
EPSS: < 1% Very Low
KEV: No
Impact: Cache poisoning leading to cross‑tenant data leakage or malicious content served from shared cache
Action: Apply Patch
AI Analysis

Impact

This vulnerability arises from the way Pingora constructs cache keys. The default implementation uses only the request URI path, omitting the host header and any other identifying information. Because the cache key is too narrow, an attacker can deliver a crafted request that creates a malicious cache entry. Subsequent legitimate requests that match the same path but come from different tenants or users can then return the poisoned content, exposing sensitive data or injecting malware. The weakness corresponds to CWE‑345, a cache‑poisoning flaw.

Affected Systems

Affected users are operators who have deployed the Pingora framework as a proxy cache, particularly those on versions older than v0.8.0. The product in question is Cloudflare Pingora, a lightweight HTTP proxy framework that includes an alpha caching tier. Cloudflare’s own CDN infrastructure is not impacted because it implements a more comprehensive cache key. In any multi‑tenant deployment that relies on the insecure default cache key, the risk of cross‑tenant data leakage is heightened.

Risk and Exploitability

The exposure has a CVSS base score of 8.4, categorizing it as high severity. The EPSS probability is below 1 %, indicating that known exploits are rare, and the vulnerability is not listed in the CISA KEV catalog. Nevertheless, the impact is potentially widespread in multi‑tenant environments and requires no special privileges beyond the ability to send HTTP requests to the proxy. An attacker could prefix the target domain with a malicious URI path, poison the cache, and then benefit from the cached response for legitimate users. The risk is amplified in environments that proxy multiple customers through a single instance without custom cache‑key logic.

Generated by OpenCVE AI on April 16, 2026 at 13:03 UTC.

Remediation

Vendor Solution

We strongly recommend Pingora users to upgrade to Pingora v0.8.0 or higher


Vendor Workaround

Pingora users on previous versions may also remove any of their default CacheKey usage and implement their own that should at minimum include the host header / authority and upstream peer’s HTTP scheme.


OpenCVE Recommended Actions

  • Upgrade Pingora to v0.8.0 or later, which removes the insecure default cache‑key logic.
  • If an upgrade is not immediately possible, replace the default CacheKey callback with a custom implementation that includes the host header, authority, upstream HTTP scheme, and any other attributes needed for proper cache differentiation.
  • After implementing a custom cache key, validate that cached responses cannot be poisoned by sending test requests that vary the host or other distinguishing fields.

Generated by OpenCVE AI on April 16, 2026 at 13:03 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-f93w-pcj3-rggc Pingora vulnerable to cache poisoning via insecure-by-default cache key
References
History

Thu, 12 Mar 2026 14:45:00 +0000

Type Values Removed Values Added
CPEs cpe:2.3:a:cloudflare:pingora:*:*:*:*:*:*:*:*
Metrics cvssV3_1

{'score': 8.1, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N'}


Fri, 06 Mar 2026 19:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-345
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Thu, 05 Mar 2026 09:15:00 +0000

Type Values Removed Values Added
First Time appeared Cloudflare
Cloudflare pingora
Vendors & Products Cloudflare
Cloudflare pingora

Thu, 05 Mar 2026 00:00:00 +0000

Type Values Removed Values Added
Description A cache poisoning vulnerability has been found in the Pingora HTTP proxy framework’s default cache key construction. The issue occurs because the default HTTP cache key implementation generates cache keys using only the URI path, excluding critical factors such as the host header (authority). Operators relying on the default are vulnerable to cache poisoning, and cross-origin responses may be improperly served to users. Impact This vulnerability affects users of Pingora's alpha proxy caching feature who relied on the default CacheKey implementation. An attacker could exploit this for: * Cross-tenant data leakage: In multi-tenant deployments, poison the cache so that users from one tenant receive cached responses from another tenant * Cache poisoning attacks: Serve malicious content to legitimate users by poisoning shared cache entries Cloudflare's CDN infrastructure was not affected by this vulnerability, as Cloudflare's default cache key implementation uses multiple factors to prevent cache key poisoning and never made use of the previously provided default. Mitigation: We strongly recommend Pingora users to upgrade to Pingora v0.8.0 or higher, which removes the insecure default cache key implementation. Users must now explicitly implement their own callback that includes appropriate factors such as Host header, origin server HTTP scheme, and other attributes their cache should vary on. Pingora users on previous versions may also remove any of their default CacheKey usage and implement their own that should at minimum include the host header / authority and upstream peer’s HTTP scheme.
Title Cache poisoning via insecure-by-default cache key
References
Metrics cvssV4_0

{'score': 8.4, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:H/VA:N/SC:H/SI:H/SA:N'}


Subscriptions

Cloudflare Pingora
cve-icon MITRE

Status: PUBLISHED

Assigner: cloudflare

Published:

Updated: 2026-03-06T18:24:11.367Z

Reserved: 2026-02-19T21:33:42.425Z

Link: CVE-2026-2836

cve-icon Vulnrichment

Updated: 2026-03-06T18:24:07.277Z

cve-icon NVD

Status : Analyzed

Published: 2026-03-05T00:15:58.053

Modified: 2026-03-12T14:33:32.573

Link: CVE-2026-2836

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-04-16T13:15:06Z

Weaknesses