Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/emre-guler/websec/request-smugglingnpx skills add emre-guler/websec --skill request-smugglinggit clone --depth 1 https://github.com/emre-guler/websecWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/emre-guler/websec/request-smuggling)<a href="https://agentmods.dev/skills/emre-guler/websec/request-smuggling"><img src="https://agentmods.dev/badge/skills/emre-guler/websec/request-smuggling.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00082 | $0.06021 |
| Opus 5 | $0.00041 | $0.03010 |
| Sonnet 5 | $0.00016 | $0.01204 |
| Haiku 4.5 | $0.00008 | $0.00602 |
Grade A, and why
request-smuggling scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 178 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Request Smuggling Detection
Overview
Request smuggling attacks the agreement between two servers about where one HTTP message ends and the next begins. A front hop — a load balancer, reverse proxy, CDN node, or gateway — forwards many users' requests down reused upstream connections; if it and the origin resolve a request's length differently, trailing bytes the front hop counted as body are read by the origin as the start of the next request and are grafted onto whichever message arrives next on that connection. The attacker is typically an unauthenticated remote party, and in browser-triggered variants a victim merely visiting a page. What they gain is leverage over other people's traffic: front-hop security controls skipped, forwarded identity headers supplied by hand, victims' requests captured, responses redirected to the wrong requester, and harmful responses pushed into shared caches. This is an infrastructure-boundary flaw far more than an application-code flaw, so this skill locates the hops and length-handling decisions the repository actually contains together with the application behaviours that make a desynchronisation exploitable, checks each candidate in parallel, and merges the results into <output_dir>/request-smuggling-results.md.
What it is NOT
- Web cache poisoning (
/websec:web-cache-poisoning): storing a harmful response under a key victims request is that class, and it exists independently through unkeyed inputs. Test: is the mechanism an input the cache omits from its key, or a length disagreement between hops? Only the latter belongs here; the cache outcome is a consequence to record. - Web cache deception (
/websec:web-cache-deception): a victim's private response stored under a fetchable key is that class. Same test — the boundary is the mechanism, not the outcome. - Host header trust (
/websec:host-header): duplicate or ambiguous authority values and a hop that validates only the first request on a reused connection are host-validation problems. Test: is the disagreement about which site the request is for, or about how long the request is? Length belongs here. - Cross-site scripting (
/websec:xss): an unsafe reflection is that class; a desynchronisation is one delivery path that removes the need for victim interaction. - Access control (
/websec:access-control): a path protected only at the front hop is an authorization design defect in its own right. Record it here as what makes a desynchronisation severe, and let the sibling skill own the missing origin-side check. - Response header injection: injecting delimiters into a single response splits that response; smuggling desynchronises request boundaries between hops. Delimiter injection appears here only as a downgrade-time mechanism.
- Not a finding: a chain that speaks HTTP/2 end to end with no downgrade and no length rewriting; a front hop whose configuration in the repository demonstrably rejects requests carrying conflicting length signals; a single process with no upstream hop and no evidence of connection reuse, absent a body-ignoring handler; a slow endpoint (latency alone says nothing).
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 3d ago First seen · 178 lines · 82 tokens per session scan A 576661183761
request-smuggling is a skill published in the GitHub repository emre-guler/websec (2 stars, last pushed 6d ago), licensed MIT. It adds 82 tokens to every session and 6,021 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
vantage
Autonomous, artifact-driven SAST (Static Application Security Testing) for web AND mobile app repositories, plus optional code-level remediation. Use whenever the user asks to security-review, pentest, audit, or scan a codebase for vulnerabilities — web (SQLi, XSS, IDOR/BOLA, auth bypass, SSRF, XXE, hardcoded secrets…
prowler-compliance
Creates, syncs, audits and manages Prowler compliance frameworks end-to-end. Covers the two supported JSON schemas (universal multi-provider and legacy per-provider), the SDK model tree (legacy attribute classes, universal ComplianceFramework, ConfigRequirements guardrails), output formatters (legacy per-framework +…
prowler-ui
Prowler UI-specific patterns. For generic patterns, see: typescript, react-19, nextjs-16, tailwind-4. Trigger: When working inside ui/ on Prowler-specific conventions (shadcn, folder placement, actions/adapters, shared types/hooks/lib).
prowler-pr
Creates Pull Requests for Prowler following the project template and conventions. Trigger: When working on pull request requirements or creation (PR template sections, PR title Conventional Commits check, changelog gate/no-changelog label), or when inspecting PR-related GitHub workflows like conventional-commit.yml…
prowler-test-api
Testing patterns for Prowler API: JSON:API, Celery tasks, RLS isolation, RBAC. Trigger: When writing tests for api/ (JSON:API requests/assertions, cross-tenant isolation, RBAC, Celery tasks, viewsets/serializers).
prowler-ci
Helps with Prowler repository CI and PR gates (GitHub Actions workflows). Trigger: When investigating CI checks failing on a PR, PR title validation, changelog gate/no-changelog label, conflict marker checks, secret scanning, CODEOWNERS/labeler automation, or anything under .github/workflows.