Cache Poisoning Case Studies Part 1 Foundational Attacks Beh... #1621
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🤖 Automated Content Update
This PR was automatically generated by the HackTricks News Bot based on a technical blog post.
📝 Source Information
🎯 Content Summary
This post is Part 1 of a three-part series and focuses on foundational web cache poisoning attacks using real bug bounty case studies. It explains how reverse proxies, CDNs, and server-side caches can be tricked into storing poisoned responses and serving them to many users, turning simple misconfigurations into high-impact issues such as global redirects, stored XSS, and large-scale DoS.
The article first clarifies why caches exist (for static files, API responses, HTML ...
🔧 Technical Details
Header-based cache poisoning via unkeyed proxy headers (X-Forwarded-Host / X-Forwarded-Scheme)
If reverse proxies or origin applications trust headers like
X-Forwarded-HostorX-Forwarded-Schemeto build redirect URLs, canonical links, or Open Graph tags, but these headers are not in the cache key, a single request can poison the cache for all users. The attacker sends a request such as:evil.comin the response (e.g., in aLocation:header or HTML), and the cache stores this response. Subsequent requests withoutX-Forwarded-Hoststill receive the poisoned redirect or content. This applies to global redirects, JS asset redirects, Open Graph fields, and more, effectively turning a per-request header into a stored, shared payload.Co...
🤖 Agent Actions
Summary:
Tests: Not run (not requested).
This PR was automatically created by the HackTricks Feed Bot. Please review the changes carefully before merging.