web-vuln-cache-poisoning

Detect web cache poisoning and deception in cached HTTP responses.

21|1|Updated Apr 12, 2026
One-click install
npx skills add https://github.com/woohyun212/security-skill --skill web-vuln-cache-poisoning
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: web-vuln-cache-poisoning
Source: https://github.com/woohyun212/security-skill/tree/main/web-vuln-cache-poisoning
Command: npx skills add https://github.com/woohyun212/security-skill --skill web-vuln-cache-poisoning

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Identifies when a CDN or reverse-proxy cache serves attacker-influenced content or authenticated content to unintended users, preventing open redirects, XSS, and sensitive-data disclosure via poisoned cache entries.

Core Features & Use Cases

  • Cache behavior detection: Records caching headers (Age, X-Cache, CF-Cache-Status) to determine whether responses are cached.
  • Unkeyed input enumeration: Tests header and parameter vectors such as X-Forwarded-Host, X-Original-URL, and fat GET payloads to find inputs not included in the cache key.
  • Poisoning and deception verification: Injects payloads into fresh cache slots, fetches without injected headers to confirm persistence, and compares authenticated vs unauthenticated responses to detect web cache deception.
  • Use case: Audit a site behind Cloudflare or Varnish to confirm whether attacker-controlled host headers or appended .css/.js paths can cause cached authenticated pages to be served to anonymous users.

Quick Start

Ask the AI to test https://www.example.com for cache poisoning using attacker.com for payload verification and provide an auth cookie for deception checks.

Frequently Asked Questions about web-vuln-cache-poisoning

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I detect web cache poisoning vulnerabilities on a site behind a CDN?

Web cache poisoning detection involves enumerating unkeyed HTTP headers like X-Forwarded-Host, injecting payloads into fresh cache slots, and fetching without those headers to confirm the malicious response persists. This process requires HTTP(S) access and curl for request orchestration.

What is web cache deception and how does it expose authenticated content?

Web cache deception occurs when a cache serves authenticated content to unintended users. It is detected by comparing authenticated versus unauthenticated responses after appending paths like .css or .js, checking if cached authenticated pages are served to anonymous users.

Can I test for unkeyed headers using curl on Cloudflare or Varnish cached responses?

Yes, you can test for unkeyed headers on Cloudflare or Varnish using curl. The process records caching headers like Age and CF-Cache-Status, manipulates headers and parameters, and uses cache-busting techniques to verify if attacker-controlled inputs influence cached responses.

Do I need an attacker-controlled domain to verify web cache poisoning payloads?

Yes, an attacker-controlled domain or collaborator endpoint is required for payload verification during web cache poisoning tests. It confirms whether injected payloads in unkeyed headers are successfully reflected and persisted in the cached HTTP response served to other users.

What HTTP headers are tested for web cache poisoning vectors?

Testing for web cache poisoning vectors targets unkeyed inputs like X-Forwarded-Host, X-Original-URL, and fat GET payloads. These headers and parameters are manipulated to determine if they are excluded from the cache key and can inject malicious content.

Why does a cached response show different content after injecting a host header?

A cached response shows different content because the injected host header was unkeyed, meaning it was not part of the cache key. This allows the attacker-influenced response to be stored and served to unintended users, confirming a web cache poisoning vulnerability.