yaklang/hack-skills/http2-specific-attacks
- community
Checking that the SKILL.md file is still in the repository.
HTTP/2 protocol-specific attack playbook. Use when the target supports HTTP/2 and you need to exploit binary framing, HPACK compression, h2c upgrade smuggling, pseudo-header injection, stream multiplexing abuse, or H2→H1 downgrade translation flaws.
Install
npx vskill@latest install yaklang/hack-skills/http2-specific-attacksSKILL.md
SKILL: HTTP/2 Specific Attacks — Expert Attack Playbook
AI LOAD INSTRUCTION: HTTP/2 protocol-level attack techniques beyond basic request smuggling. Covers h2c smuggling, pseudo-header manipulation, HPACK attacks, single-packet race conditions, and H2→H1 downgrade injection. Base models conflate HTTP/2 smuggling with HTTP/1.1 smuggling — this skill focuses on H2-unique attack surface.
0. RELATED ROUTING
- request-smuggling — CL.TE/TE.CL/TE.TE fundamentals and H2.CL/H2.TE variants
- request-smuggling/H2_SMUGGLING_VARIANTS.md — byte-level H2.CL/H2.TE payloads, CL.0, client-side desync
- race-condition — single-packet attack leverages H2 multiplexing for race conditions
- web-cache-deception — cache poisoning via H2 smuggled responses
1. HTTP/2 ATTACK SURFACE OVERVIEW
| Feature | Attack Surface | |
|---|---|---|
| Binary framing | Frame-level manipulation, parser differentials | |
| HPACK compression | Compression oracles (CRIME/BREACH), table poisoning | |
| Multiplexing | Single-packet race conditions, RST_STREAM flood | |
| Server push | Cache poisoning via unsolicited push | |
Pseudo-headers (:method/:path/:authority/:scheme) | Injection, request splitting, path discrepancy |
2. h2c (HTTP/2 CLEARTEXT) SMUGGLING
2.1 Concept
h2c is HTTP/2 without TLS, negotiated via the HTTP/1.1 Upgrade mechanism. Many reverse proxies forward the Upgrade: h2c header without understanding it, allowing attackers to bypass proxy-level access controls.
2.2 Attack Flow
2.3 What You Can Bypass
2.4 Tool: h2csmuggler
2.5 Detection
3. PSEUDO-HEADER INJECTION
3.1 HTTP/2 Pseudo-Headers
HTTP/2 replaces the request line with pseudo-headers (prefixed with :):
| Pseudo-Header | HTTP/1.1 Equivalent | Example | |
|---|---|---|---|
:method | Request method | GET, POST | |
:path | Request URI | /api/users | |
:authority | Host header | target.com | |
:scheme | Protocol | https |
3.2 Path Discrepancy Between Proxy and Backend
3.3 Duplicate Pseudo-Header Injection
HTTP/2 spec forbids duplicate pseudo-headers, but implementation varies:
3.4 Authority vs Host Disagreement
3.5 Scheme Manipulation
4. HPACK COMPRESSION ATTACKS
4.1 CRIME/BREACH on HTTP/2
4.2 Header Table Poisoning
5. STREAM MULTIPLEXING ABUSE
5.1 Single-Packet Attack (Race Conditions)
HTTP/2 multiplexing allows sending multiple requests in a single TCP packet, achieving true simultaneous server-side processing:
5.2 RST_STREAM Flood (CVE-2023-44487 "Rapid Reset")
5.3 PRIORITY Manipulation
6. HTTP/2 → HTTP/1.1 DOWNGRADE ISSUES
6.1 Header Injection via Binary Format
H2 header values are binary — \r\n is valid data within a value. When proxy downgrades to H1, \r\n in header value becomes actual line break → header injection.
6.2 Transfer-Encoding Smuggling
H2 spec forbids transfer-encoding, but some proxies pass it through during downgrade → backend processes chunked encoding → H2.TE smuggling. See ../request-smuggling/H2_SMUGGLING_VARIANTS.md.
6.3 Content-Length Discrepancy
H2 uses frame length (no CL needed). If proxy generates CL during downgrade but attacker also sent a CL header → conflicting lengths → request smuggling.
6.4 Header Name Case
H2 requires lowercase. Sending Transfer-Encoding (uppercase) is invalid H2 but some proxies pass it → valid H1 header on backend.
7. SERVER PUSH CACHE POISONING
8. DECISION TREE
9. TOOLS REFERENCE
| Tool | Purpose | |
|---|---|---|
| h2csmuggler | h2c upgrade smuggling (github.com/BishopFox/h2csmuggler) | |
| http2smugl | H2-specific desync testing (github.com/neex/http2smugl) | |
| h2 (Python) | HTTP/2 protocol lib for frame crafting (github.com/python-hyper/h2) | |
| nghttp2 | H2 client/server tools (nghttp2.org) | |
| Burp HTTP Request Smuggler | Automated variant scanning | |
| curl --http2 | Quick H2 probing (built-in) |
10. QUICK REFERENCE
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/http2-specific-attacks/SKILL.md
Popularity
- Installs
- 3
- Unique users
- 2
- Repository stars
- 349
- Repository forks
- 62
- 7-day trend score
- 33
Installs come from the vskill CLI. Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 27 Apr 2026, 6 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/yaklang/hack-skills/http2-specific-attacks)