
CVE-2026-33267 — Apache Traffic Server @ header internal-metadata spoof (CVSS 10.0). Verificado: @ headers vazam para plugins na versão 10.1.2, removidos na versão 10.1.4.
@ não confiável → falsificação de metadados internosCVSS 10.0 (Crítico) · CWE-20 · GHSA-jrh6-9hgv-mqm7
O Apache Traffic Server reserva cabeçalhos com prefixo @ (@Ats-Internal, @ICAP-Status, @TCPInfo, ...) para metadados internos: eles vivem na estrutura de cabeçalhos em memória, mas nunca são serializados na rede. Em versões vulneráveis (9.2.0–9.2.14, 10.1.0–10.1.3), esses cabeçalhos provenientes da solicitação do cliente e da resposta da origem não são removidos antes da execução dos hooks de plugins (TS_HTTP_READ_REQUEST_HDR_HOOK, TS_HTTP_READ_RESPONSE_HDR_HOOK, plugins de remap). Um atacante remoto pode falsificar metadados internos do ATS; plugins (cache, ACL, header_rewrite, …) podem então confiar em estado interno controlado pelo atacante — o impacto depende dos plugins em uso.
a9aee837db — "CVE-2026-33267: 9.2.x: Strip external @ headers before plugin hooks"4ab63dbd93 — mesma correçãoHttpTransact::strip_at_headers() é executado antes dos hooks READ_REQUEST_HDR / READ_RESPONSE_HDR; contadores proxy.process.http.client_request_at_headers_stripped / proxy.process.http.origin_response_at_headers_stripped adicionados.Plugin personalizado at_probe registrando cabeçalhos @ em ambos os hooks, além de um cliente de socket bruto (o curl descarta silenciosamente cabeçalhos @):
| Compilação | @Ats-Internal fornecido pelo cliente | @Origin-Test fornecido pela origem |
|---|---|---|
| ATS 10.1.2 (vulnerável) | 🟥 VAZADO (plugin o observou) | 🟥 VAZADO (8 observações) |
| ATS 10.1.4 (corrigido, compilado a partir do código-fonte) | ✅ REMOVIDO ("stripped internal @ header") | ✅ REMOVIDO |
Controle negativo na compilação corrigida: 0 observações do plugin (o plugin nunca vê os cabeçalhos).
python3 at_headers_spoof.py 127.0.0.1 8080 /
Envia GET / com @Ats-Internal: pwned e @Another-At: test por um socket bruto e imprime o cabeçalho da resposta. Em ATS vulnerável, o plugin personalizado (ou qualquer plugin que confie em metadados @) recebe os cabeçalhos falsificados; em compilações corrigidas, eles são removidos antes dos hooks.
@ na implantação alvo (por exemplo, diretivas header_rewrite/cache que referenciam campos @).a9aee837db · Correção 10.1.x: 4ab63dbd93