ai-ml-attacks
This skill should be used when the user asks about "AI security", "ML pipeline attacks", "prompt injection", "model deserialization", "unsafe model loading",…
This skill should be used when the user asks about "cache poisoning", "web cache deception", "CDN cache", "proxy cache", "nginx cache", "varnish", "cache key manipulation", "response caching", or needs to find cache-related vulnerabilities during whitebox security review.
$ npx -y skills add allsmog/vuln-scout --skill cache-poisoning --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/cache-poisoningContext preview
The summary Claude sees to decide when to auto-load this skill.
This skill should be used when the user asks about "cache poisoning", "web cache deception", "CDN cache", "proxy cache", "nginx cache", "varnish", "cache key manipulation", "response caching", or needs to find cache-related vulnerabilities during whitebox security review.
name: Cache Poisoning description: This skill should be used when the user asks about "cache poisoning", "web cache deception", "CDN cache", "proxy cache", "nginx cache", "varnish", "cache key manipulation", "response caching", or needs to find cache-related vulnerabilities during whitebox security review. version: 1.0.0
Provide detection patterns for HTTP cache poisoning and web cache deception vulnerabilities, including proxy cache misconfigurations, cache key manipulation, and authenticated response caching.
**Category**: Related to A01 (Broken Access Control), A05 (Security Misconfiguration)
**CWEs**:
Activate this skill when:
---
Web cache deception occurs when: 1. Proxy caches responses based on file extension (e.g., `.png`, `.css`) 2. Application serves dynamic content regardless of path extension 3. Attacker tricks victim into visiting `/profile.png` 4. Proxy caches authenticated response 5. Attacker retrieves cached sensitive data
# Find proxy cache configurations grep -rniE "proxy_cache|proxy_cache_valid|proxy_cache_key" --include="*.conf" --include="nginx.conf" # Check cache rules for static extensions (HIGH RISK) grep -rniE "location.*\.(css|js|png|jpg|jpeg|gif|ico|svg|woff)" -A10 --include="*.conf" | grep -iE "proxy_cache|cache" # Cache key analysis - look for missing user identification grep -rniE "proxy_cache_key" --include="*.conf" # Caching authenticated responses (CRITICAL if no Vary header) grep -rniE "proxy_cache_valid\s+200" --include="*.conf"
# VCL cache rules grep -rniE "vcl_recv|vcl_hash|vcl_backend_response" --include="*.vcl" # Static extension caching grep -rniE "req\.url.*\.(css|js|png|jpg|jpeg|gif|ico)" --include="*.vcl" # Cache TTL settings grep -rniE "set beresp\.ttl|beresp\.grace" --include="*.vcl"
# mod_cache configuration grep -rniE "CacheEnable|CacheRoot|CacheMaxExpire" --include="*.conf" --include=".htaccess" # Cache for specific paths grep -rniE "CacheEnable.*disk" --include="*.conf"
# Cloudflare/AWS CloudFront grep -rniE "cache.*control|edge.*cache|cdn.*cache|cloudfront|cloudflare" --include="*.json" --include="*.yaml" --include="*.yml" # Cache-Control headers grep -rniE "Cache-Control|max-age|s-maxage|public|private" --include="*.go" --include="*.py" --include="*.java" --include="*.ts" --include="*.php"
---
# Host header in requests (potential cache key manipulation) grep -rniE "Host.*header|getHeader.*Host|X-Forwarded-Host|X-Original-Host" --include="*.go" --include="*.py" --include="*.java" --include="*.ts" --include="*.php" # Query parameter handling grep -rniE "query.*param|request\.query|getQueryString" --include="*.go" --include="*.py" --include="*.java" --include="*.ts" --include="*.php" # Cache key includes query string? grep -rniE "proxy_cache_key.*query|CacheKeyQueryString" --include="*.conf" --include="*.vcl"
# X-Forwarded-* headers that might be in cache key grep -rniE "X-Forwarded-Host|X-Forwarded-Scheme|X-Forwarded-Proto" --include="*.conf" --include="*.go" --include="*.py" # Unkeyed headers that affect response grep -rniE "X-Original-URL|X-Rewrite-URL" --include="*.conf" --include="*.go" --include="*.py"
---
When SSRF response is not directly returned to attacker: 1. Make SSRF request to `/sensitive-endpoint.png` 2. Proxy caches the response (thinks it's static) 3. Attacker requests same path 4. Gets cached sensitive data
# SSRF endpoints that make internal requests grep -rniE "requests\.get|http\.Get|fetch\(|axios\.|urllib" --include="*.py" --include="*.go" --include="*.js" --include="*.ts" # User-controlled URLs in SSRF grep -rniE "url.*=.*request|uri.*=.*request|callback.*=.*request" --include="*.py" --include="*.go" --include="*.js" --include="*.ts" # Check if proxy caches the response path grep -rniE "proxy_cache|cache_valid" -B5 -A5 --include="*.conf"
---
Many caches use file extension to determine cacheability:
If the application ignores the extension and serves the same content, this enables cache deception.
# Flask/Django wildcard routes
grep -rniE "route.*<path:|path:subpath|<.*:.*>" --include="*.py"
# Express catch-all routes
grep -rniE "app\.get\('\*'|router\.get\('\*'|\.use\('\/'," --include="*.js" --include="*.ts"
# Nginx location blocks that proxy regardless of extension
grep -rniE "location\s+/|location\s+~" -A10 --include="*.conf" | grep -iE "proxy_pass"
# Check if routes handlAI-powered whitebox penetration testing plugin for Claude Code. 9 languages, 22 skills, 7 autonomous agents. STRIDE threat modeling, OWASP 2025 coverage, polyglot monorepo support.
Repo: allsmog/vuln-scout
This skill should be used when the user asks about "AI security", "ML pipeline attacks", "prompt injection", "model deserialization", "unsafe model loading",…
This skill should be used when the user asks about "business logic", "workflow vulnerability", "trust boundary", "state machine", "authorization bypass",…
This skill should be used when the user asks about "cloud security", "AWS security", "GCP security", "Azure security", "Kubernetes security", "IMDS", "instance…
This skill should be used when the user asks about "compliance mapping", "PCI-DSS", "HIPAA", "SOC 2", "NIST CSF", "regulatory requirements", "compliance…
This skill should be used when the user asks about "Code Property Graph", "CPG analysis", "Joern queries", "CPGQL", "data flow verification", "taint tracking…
This skill should be used when analyzing multi-service architectures, frontend-backend interactions, microservices, or when looking for vulnerabilities that…