hunt-cache-poison

Detects cache poisoning and Web Cache Deception vulnerabilities in CDN-fronted web applications.

6|Updated Jan 31, 2026
One-click install
npx skills add https://github.com/Wyl-cmd/kxns-cli --skill hunt-cache-poison-wyl-cmd
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: hunt-cache-poison
Source: https://github.com/Wyl-cmd/kxns-cli/tree/main/src/kxns_cli/skills/hunt-cache-poison
Command: npx skills add https://github.com/Wyl-cmd/kxns-cli --skill hunt-cache-poison-wyl-cmd

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Web cache poisoning and Web Cache Deception vulnerabilities are difficult to find manually because they depend on subtle mismatches between CDN cache keys and origin behavior, and a single missed unkeyed header or path-normalization quirk can hide a mass-exploitation flaw. ## Core Features & Use Cases - Cache Infrastructure Mapping: Identify caching layers (Cloudflare, Fastly, Akamai, Varnish, Nginx) from response headers like X-Cache, CF-Cache-Status, and Age, then determine which headers are unkeyed. - Poisoning & Deception Testing: Test unkeyed header reflection (X-Forwarded-Host, X-HTTP-Method-Override), path-extension Web Cache Deception, cached error-response DoS, and HTTP parameter pollution with concrete curl commands and Burp grep patterns. - Validation & Impact Scoping: Apply Gate 0 checks requiring reproduction from a separate client/IP, measure cache TTL, and document blast radius for severity rating. - Use Case: While testing a Shopify storefront, send a request with X-Forwarded-Host pointing to a canary domain plus a cache-busting query parameter, confirm reflection in the cached response, then fetch the URL from an incognito session to prove the poisoned entry is served to other users. ## Quick Start Ask the agent to test https://target.com/account for cache poisoning and Web Cache Deception using the hunt-cache-poison methodology and report any confirmed poisoned cache entries.

Frequently Asked Questions about hunt-cache-poison

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

FAQPage Schema
How do I test a website for cache poisoning vulnerabilities?

Send requests with unkeyed headers like X-Forwarded-Host pointing to a canary domain, plus a unique cache-busting query parameter so the probe lands on a fresh cache key. Then fetch the same URL from a separate IP or incognito session without the header to confirm the poisoned response is served to other users.

What is Web Cache Deception and how do I detect it?

Web Cache Deception tricks a CDN into caching authenticated dynamic content by appending static-looking extensions like .css or .jpg to dynamic routes. Test it by requesting /account/profile.css with a session cookie, then fetching the same URL unauthenticated to see if the private response was cached.

Which HTTP headers are commonly unkeyed in CDN caches?

Common unkeyed headers include X-Forwarded-Host, X-Host, X-Forwarded-Server, X-HTTP-Host-Override, Forwarded, X-Original-URL, X-Rewrite-URL, and X-Forwarded-Scheme. Burp Suite Param Miner's header guessing mode automates discovery of these unkeyed inputs.

Why does my cache poisoning test only affect my own browser?

If only your own client sees the effect, the response is stored in a private browser cache, not the shared CDN cache. Confirm real poisoning by reproducing the poisoned response from a different IP or incognito session without sending the malicious headers.

Can cache poisoning bypass Cloudflare Cache Deception Armor?

Yes, documented bypasses exist using extensions missing from the Armor allowlist, such as .avif, which caused authenticated HTML responses to be cached. Path normalization discrepancies between the cache and origin also bypass such protections.