request-smuggling

request-smuggling is a skill for Claude Code, Codex from emre-guler/websec. It costs 82 tokens per session (6,021 once invoked), scanned A, original, MIT.

A security check for HTTP request smuggling, where a proxy and an application disagree about where one request ends and the next begins. A proxy is a server that forwards requests to another server.

In plain words
What is it for?
Use it when a project includes reverse proxies, load balancers, CDNs, gateways, ingress settings, or connections where HTTP/2 is converted to HTTP/1 before reaching the application.
Why use it?
It helps find mismatched request-length handling that can let attacker-controlled data affect another user's request or bypass controls at the front of a system.

Skill for Claude CodeCodex

Part of the websec plugin — 36 skills, 2 agents shipped together

Install

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.

agentmods
npx agentmods add skills/emre-guler/websec/request-smuggling
Any agent
npx skills add emre-guler/websec --skill request-smuggling
Clone the repo
git clone --depth 1 https://github.com/emre-guler/websec

Made for: Claude Code, Codex.

Or install websec, the plugin that ships this one along with the rest of its 36 skills, 2 agents.

Wrote 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.

agentmods badge for request-smuggling

README.md
[![agentmods](https://agentmods.dev/badge/skills/emre-guler/websec/request-smuggling.svg)](https://agentmods.dev/skills/emre-guler/websec/request-smuggling)
Your own site
<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>
Per session 82 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 6,021 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce 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

Measured 3d ago against content hash 576661183761, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

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.

skills/request-smuggling/SKILL.md · 178 lines

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).

Read the full file on GitHub · 178 lines

Changes

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.

  1. 3d ago First seen · 178 lines · 82 tokens per session scan A 576661183761

Subscribe to this mod's changes

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.

Related

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…

tinoimammp/vantage-security-agent · 230 tokens

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-cloud/prowler · 227 tokens

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-cloud/prowler · 64 tokens

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-cloud/prowler · 84 tokens

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-cloud/prowler · 62 tokens

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.

prowler-cloud/prowler · 67 tokens