
CVE-2026-33267 — Apache Traffic Server: спуфинг внутренних метаданных @ header (CVSS 10.0). Проверено: @ headers утекают в плагины на 10.1.2, удаляются на 10.1.4
@-заголовок → подмена внутренних метаданныхCVSS 10.0 (критический) · CWE-20 · GHSA-jrh6-9hgv-mqm7
Apache Traffic Server резервирует заголовки с префиксом @ (@Ats-Internal, @ICAP-Status, @TCPInfo, ...) для внутренних метаданных: они хранятся в структуре заголовков в памяти, но никогда не сериализуются по сети. В уязвимых версиях (9.2.0–9.2.14, 10.1.0–10.1.3) эти заголовки, поступающие из запроса клиента и ответа источника (origin), не удаляются перед выполнением хуков плагинов (TS_HTTP_READ_REQUEST_HDR_HOOK, TS_HTTP_READ_RESPONSE_HDR_HOOK, remap-плагинов). Удалённый злоумышленник может подделать внутренние метаданные ATS; плагины (cache, ACL, header_rewrite, …) могут затем доверять контролируемому злоумышленником внутреннему состоянию — влияние зависит от используемых плагинов.
a9aee837db — "CVE-2026-33267: 9.2.x: Strip external @ headers before plugin hooks"4ab63dbd93 — то же исправлениеHttpTransact::strip_at_headers() выполняется до хуков READ_REQUEST_HDR / READ_RESPONSE_HDR; добавлены счётчики proxy.process.http.client_request_at_headers_stripped / proxy.process.http.origin_response_at_headers_stripped.Пользовательский плагин at_probe, логирующий @-заголовки в обоих хуках, а также клиент на raw-сокетах (curl молча отбрасывает @-заголовки):
| Сборка | @Ats-Internal от клиента | @Origin-Test от источника |
|---|---|---|
| ATS 10.1.2 (уязвимая) | 🟥 УТЕЧКА (плагин его увидел) | 🟥 УТЕЧКА (8 наблюдений) |
| ATS 10.1.4 (исправлена, собрана из исходников) | ✅ УДАЛЁН ("stripped internal @ header") | ✅ УДАЛЁН |
Отрицательный контроль на исправленной сборке: 0 наблюдений плагина (плагин никогда не видит заголовки).
python3 at_headers_spoof.py 127.0.0.1 8080 /
Отправляет GET / с заголовками @Ats-Internal: pwned и @Another-At: test через raw-сокет и выводит заголовочную часть ответа. На уязвимом ATS пользовательский плагин (или любой плагин, доверяющий @-метаданным) получает подделанные заголовки; на исправленных сборках они удаляются до выполнения хуков.
@-метаданным доверяет в целевой системе (например, директивы header_rewrite/cache, ссылающиеся на @-поля).a9aee837db · Исправление 10.1.x: 4ab63dbd93