Apache Traffic Server Internal @Header Metadata Spoofing (CVE-2026-33267)
Published: 2026-08-16 • Researcher: Boreas37
- Severity
- Critical
- CVE
- CVE-2026-33267 / GHSA-jrh6-9hgv-mqm7
- Category
- web
- Affected product
- Apache Traffic Server
- Affected versions
- ATS 9.2.0-9.2.14, 10.1.0-10.1.3
- Disclosed
- 2026-08-16
- Patch status
- Unverified
Tags
Archive entry
intelseclab/poc-archiveOn this page
Metadata
| Field | Value |
|---|---|
| Date Added | 2026-08-16 |
| Last Updated | 2026-08-16 |
| Author / Researcher | Boreas37 |
| CVE / Advisory | CVE-2026-33267 / GHSA-jrh6-9hgv-mqm7 |
| Category | web |
| Severity | Critical |
| CVSS Score | 10.0 (NVD) |
| Status | Patched (9.2.15 / 10.1.4) |
| Tags | apache, traffic-server, ats, header-injection, metadata-spoof, cache-poisoning, acl-bypass, plugin, CVE-2026-33267 |
| Related |
Affected Target
| Field | Value |
|---|---|
| Software / System | Apache Traffic Server |
| Versions Affected | ATS 9.2.0-9.2.14, 10.1.0-10.1.3 |
| Language / Platform | Python 3 (raw socket PoC) |
| Authentication Required | None |
| Network Access Required | Remote – HTTP access to ATS instance |
Summary
CVE-2026-33267 is an internal metadata spoofing vulnerability in Apache Traffic Server. ATS uses @-prefixed headers (e.g., @Ats-Internal, @ICAP-Status, @TCPInfo) as internal metadata that lives in the in-memory header structure but is never serialized on the wire. In vulnerable versions, @ headers supplied by the client request and origin response are not stripped before plugin hooks run (TS_HTTP_READ_REQUEST_HDR_HOOK, TS_HTTP_READ_RESPONSE_HDR_HOOK, remap plugins). An attacker can spoof ATS internal metadata, causing plugins (cache, ACL, header_rewrite) to trust attacker-controlled internal state.
The PoC sends HTTP requests with @-prefixed headers via raw sockets (curl silently drops @ headers) to demonstrate that vulnerable ATS instances pass them through to plugins.
Vulnerability Details
Root Cause
Apache Traffic Server does not strip @-prefixed headers from incoming client requests or origin responses before invoking plugin hooks. These headers are intended as internal-only metadata that plugins trust for cache control, ACL decisions, and routing.
Attack Flow
- Craft request: Build HTTP request with @-prefixed headers (e.g., @Ats-Internal: pwned)
- Raw socket delivery: Send via raw TCP socket (required because curl strips @ headers)
- Plugin impact: ATS plugins see attacker-controlled internal metadata, potentially bypassing ACLs, poisoning cache entries, or manipulating routing decisions
Source Repository
| Field | Value |
|---|---|
| Original URL | https://github.com/Boreas37/CVE-2026-33267-PoC |
| Archive Date | 2026-08-16 |
| Stars at Archive | 4 |