
Apache Traffic Server 10.2.0 – Hoch – Remote – Verbleibende Berechtigungen – authproxy-Präfix
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · ats-authproxy-prefix
Klasse: Privilegien-Überbleibsel Reichweite: Remote
Apache Traffic Server 10.2.0 (b1df7334) - Apache Software Foundation
authproxy --forward-header-prefix kopiert Identitätsfelder von einem 2xx-Auth-Helper auf die Client-Anfrage. HttpSetMimeHeader findet und überschreibt nur das erste Feld dieses Namens. Zusätzliche Client-Kopien bleiben erhalten. Ein Origin, bei dem der letzte Wert desselben Headers gewinnt, behandelt den Client-Wert als Identität.
Die Standard-plugin.config ist leer. Dieses Überbleibsel erfordert das Plugin in einem Remap mit der Prefix-Option. Der Client muss weiterhin die Authentifizierung bestehen (2xx). Ein Auth-403 erreicht niemals den Origin.
| ID | noch keine CVE |
| Klasse | Privilegien-Überbleibsel (Einschleusen von Identitäts-Headern) |
| Reichweite | Remote (HTTP durch authproxy mit --forward-header-prefix) |
| CWE | CWE-444, CWE-863 |
| CVSS | Hoch: 8.1 CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H |
| Produkt | Apache Traffic Server |
| Betroffen | 10.2.0 (b1df7334b39a878971c376da849e8da4984918b6) authproxy-Prefix-Overlay |
| Auth | Client, der bereits ein 2xx vom Auth-Helper erhält. Plugin aktiv. |
| Lizenz | GNU Affero GPL v3.0 |
| Lab | nur 127.0.0.1:18760 |
Ich habe den öffentlichen Tag 10.2.0 gepinnt, Peel b1df7334. Das Lab ist ein aus dem Quellcode gebauter ats-10.2.0-lab:local-Reverse-Proxy auf Loopback. Auth-Helper 2xx vs. 403. Origin mit Last-Wins bei X-Auth-User.
Ein ATS-Remap erreichen, das authproxy.so mit --forward-header-prefix=X-Auth- lädt. Zwei X-Auth-User-Zeilen auf einer Anfrage senden, die der Helper als 2xx akzeptiert.
| Methode | Sink | Privileg |
|---|---|---|
Doppelter X-Auth-User nach einem 2xx-Auth-Helper | StateAuthorized-Overlay, dann HttpSetMimeHeader (authproxy.cc:660-690, utils.cc:87-102) | Integrität (im Lab nachgewiesen): Origin mit Last-Wins. Lab: X-Auth-User-0: realuser plus X-Auth-User-1: ATS-AUTHPROXY-PREFIX-WITNESS. CONTROL none/single bleiben REALUSER-ONLY. |
| Gleiches Einschleusen | Origin-ACL / Benutzer-Lookup, der auf diesem Header basiert | Recon (abgeleitet): alles, was diese eingeschleuste Identität am Origin lesen kann. Kein Heap-Dump. Keine ATS-Konfiguration. |
| Auth-Helper 403 mit denselben Duplikaten | StateUnauthorized; Origin nicht wieder aktiviert | Geschlossen (im Lab nachgewiesen): Origin-Treffer unverändert. Client 403. Witness nicht im Body. |
Im Lab nachgewiesen vs. abgeleitet: Duplikat-Last-Wins, Einzel-Überschreiben, none und 403-nicht-erreicht sind Lab. Origin-Privileg nach dem Einschleusen ist aus der Last-Wins-Identität abgeleitet.
Erfordert: authproxy.so mit --forward-header-prefix. Client muss die Authentifizierung bestehen (2xx). Origin muss diese Prefix-Header als Identität behandeln (der Grund, warum die Option existiert). Nicht in der Standard-plugin.config geladen.
| Oberfläche | Lab |
|---|---|
| Kein Client-Prefix-Header | CONTROL none: Origin REALUSER-ONLY |
| Einzelner Client-Prefix | CONTROL single: erstes Feld überschrieben; Witness überlebt nicht |
| Auth-Helper 403 | Origin nicht erreicht (control-403=yes) |
| Plugin nicht geladen | Leftover greift nicht |
Hop-by-Hop- / @-Header | vor Plugin-Hooks entfernt (CVE-2026-33267) |
| Leere Auth-Response-Header-Liste | wird nicht mehr zugesichert (Changelog) |
Certifier-SNI / url_sig C= | auf diesem Pin geschlossen (CVE-2026-58162 / 58181) |
Nicht CVE-2026-58162. Nur SHA-256/SHA-512 bei uri_signing. url_sig C= mit fehlendem Trennzeichen verweigert weiterhin.
python3 ats-authproxy-prefix-Abraxas-Labs.py
oder
cd lab
./run.sh
Loopback 127.0.0.1:18760 (Origin 18761, Auth-Helper 18762). Compose-Projekt ats-authproxy-prefix. Image ats-10.2.0-lab:local. Witness ATS-AUTHPROXY-PREFIX-WITNESS. Letzte Zeile:
SUCCESS ats-authproxy-prefix pin=10.2.0 control-none=REALUSER-ONLY control-single=REALUSER-ONLY control-403=yes dup-last-wins=yes ATS-AUTHPROXY-PREFIX-WITNESS
Entferne jedes Client-Feld, dessen Name mit --forward-header-prefix beginnt, vor dem Overlay. HttpRemoveMimeHeader durchläuft bereits TSMimeHdrFieldFind, bis keine mehr übrig sind (utils.cc:104-114). Verwende es auf der Client-Anfrage für das konfigurierte Präfix und setze dann. Lasse HttpSetMimeHeader die TSMimeHdrFieldNextDup-Extras zerstören, so wie es origin_server_auth set_header und access_control setHeader bereits tun.
Bis dahin richte die Origin-ACL nicht auf authproxy-Präfix-Header, es sei denn, der Origin gewinnt zuerst, oder lehne doppelte Präfixnamen am Origin ab.
b1df7334b39a878971c376da849e8da4984918b6)plugins/authproxy/authproxy.cc StateAuthorizedplugins/authproxy/utils.cc HttpSetMimeHeader / HttpRemoveMimeHeaderorigin_server_auth.cc set_header durchläuft NextDup