@ 标头 → 内部元数据伪造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)中,来自客户端请求和源站响应的这些标头在插件钩子运行(TS_HTTP_READ_REQUEST_HDR_HOOK、TS_HTTP_READ_RESPONSE_HDR_HOOK、重映射插件)之前不会被剥离。远程攻击者可伪造 ATS 内部元数据;插件(cache、ACL、header_rewrite 等)随后可能信任攻击者控制的内部状态——影响取决于实际使用的插件。
a9aee837db —“CVE-2026-33267:9.2.x:在插件钩子之前剥离外部 @ 标头”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 插件在两个钩子处记录 @ 标头,外加一个原始套接字客户端(curl 会静默丢弃 @ 标头):
在已修复构建上的阴性对照:0 次插件观测(插件从未看到这些标头)。
python3 at_headers_spoof.py 127.0.0.1 8080 /
通过原始套接字发送带有 @Ats-Internal: pwned 和 @Another-At: test 的 GET / 请求,并打印响应头部。在易受攻击的 ATS 上,自定义插件(或任何信任 @ 元数据的插件)会收到伪造的标头;在已修复的构建上,这些标头会在钩子之前被剥离。
@ 元数据(例如引用 @ 字段的 header_rewrite/cache 指令)。a9aee837db · 修复 10.1.x:4ab63dbd93| 构建 | 客户端提供的 @Ats-Internal | 源站提供的 @Origin-Test |
|---|
| ATS 10.1.2(易受攻击) | 🟥 泄漏(插件观察到该标头) | 🟥 泄漏(8 次观测) |
| ATS 10.1.4(已修复,从源码构建) | ✅ 已剥离(“已剥离内部 @ 标头”) | ✅ 已剥离 |