
CVE-2026-33267 — Apache Traffic Server @ usurpation de métadonnées internes d'en-tête (CVSS 10.0). Vérifié : les en-têtes @ fuient vers les plugins sur 10.1.2, supprimés sur 10.1.4
@ non fiable → usurpation de métadonnées internesCVSS 10.0 (Critique) · CWE-20 · GHSA-jrh6-9hgv-mqm7
Apache Traffic Server réserve les en-têtes préfixés par @ (@Ats-Internal, @ICAP-Status, @TCPInfo, ...)
pour des métadonnées internes : ils vivent dans la structure d'en-têtes en mémoire mais ne sont jamais
sérialisés sur le fil. Dans les versions vulnérables (9.2.0–9.2.14, 10.1.0–10.1.3), ces en-têtes provenant de la
requête client et de la réponse d'origine ne sont pas supprimés avant l'exécution des hooks de plugins
(TS_HTTP_READ_REQUEST_HDR_HOOK, TS_HTTP_READ_RESPONSE_HDR_HOOK, plugins de remap). Un attaquant
distant peut usurper les métadonnées internes d'ATS ; les plugins (cache, ACL, header_rewrite, ...) peuvent ensuite
se fier à un état interne contrôlé par l'attaquant — l'impact dépend des plugins utilisés.
a9aee837db — « CVE-2026-33267 : 9.2.x : Supprimer les en-têtes @ externes avant les hooks de plugins »4ab63dbd93 — même correctifHttpTransact::strip_at_headers() s'exécute avant les hooks READ_REQUEST_HDR /
READ_RESPONSE_HDR ; les compteurs proxy.process.http.client_request_at_headers_stripped /
proxy.process.http.origin_response_at_headers_stripped sont ajoutés.Plugin personnalisé at_probe journalisant les en-têtes @ aux deux hooks, plus un client à socket brute
(curl abandonne silencieusement les en-têtes @) :
| Build | @Ats-Internal fourni par le client | @Origin-Test fourni par l'origine |
|---|---|---|
| ATS 10.1.2 (vulnérable) | 🟥 FUITÉ (observé par le plugin) | 🟥 FUITÉ (8 observations) |
| ATS 10.1.4 (corrigé, compilé depuis les sources) | ✅ SUPPRIMÉ (« en-tête @ interne supprimé ») | ✅ SUPPRIMÉ |
Contrôle négatif sur le build corrigé : 0 observation par le plugin (le plugin ne voit jamais les en-têtes).
python3 at_headers_spoof.py 127.0.0.1 8080 /
Envoie GET / avec @Ats-Internal: pwned et @Another-At: test sur une socket brute et affiche l'en-tête
de réponse. Sur un ATS vulnérable, le plugin personnalisé (ou tout plugin qui se fie aux métadonnées @) reçoit
les en-têtes usurpés ; sur les builds corrigés, ils sont supprimés avant les hooks.
@ sur le déploiement cible (par exemple les directives header_rewrite/cache
référençant les champs @).a9aee837db · Correctif 10.1.x : 4ab63dbd93