
Apache Traffic Server 10.2.0 - उच्च - रिमोट - विशेषाधिकार अवशेष - authproxy प्रीफ़िक्स
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · ats-authproxy-prefix
वर्ग: विशेषाधिकार अवशेष पहुँच: रिमोट
Apache Traffic Server 10.2.0 (b1df7334) - Apache Software Foundation
authproxy --forward-header-prefix 2xx auth helper से पहचान फ़ील्ड को क्लाइंट अनुरोध पर कॉपी करता है। HttpSetMimeHeader उस नाम का केवल पहला फ़ील्ड ढूँढता है और उसे ओवरराइट करता है। क्लाइंट की अतिरिक्त प्रतियाँ बची रह जाती हैं। जो ऑरिजिन उसी हेडर के लिए last-wins व्यवहार करता है, वह क्लाइंट मान को पहचान मान लेता है।
स्टॉक plugin.config खाली है। इस अवशेष के लिए प्लगइन को प्रीफ़िक्स विकल्प के साथ रीमैप पर होना आवश्यक है। क्लाइंट को अभी भी auth पास करना होगा (2xx)। Auth 403 कभी ऑरिजिन तक नहीं पहुँचता।
| ID | अभी तक कोई CVE नहीं |
| वर्ग | विशेषाधिकार अवशेष (पहचान हेडर प्लांट) |
| पहुँच | रिमोट (--forward-header-prefix के साथ authproxy के माध्यम से HTTP) |
| CWE | CWE-444, CWE-863 |
| CVSS | उच्च: 8.1 CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H |
| उत्पाद | Apache Traffic Server |
| प्रभावित | 10.2.0 (b1df7334b39a878971c376da849e8da4984918b6) authproxy प्रीफ़िक्स ओवरले |
| Auth | वह क्लाइंट जिसे auth helper से पहले से 2xx मिलता है। प्लगइन चालू। |
| लाइसेंस | GNU Affero GPL v3.0 |
| लैब | केवल 127.0.0.1:18760 |
मैंने सार्वजनिक टैग 10.2.0 को पिन किया और b1df7334 को पील किया। लैब लूपबैक पर सोर्स-बिल्ट ats-10.2.0-lab:local रिवर्स प्रॉक्सी है। Auth helper 2xx बनाम 403। ऑरिजिन last-wins X-Auth-User।
ऐसे ATS रीमैप तक पहुँचें जो authproxy.so को --forward-header-prefix=X-Auth- के साथ लोड करता है। उस अनुरोध पर दो X-Auth-User लाइनें भेजें जिसे helper 2xx के रूप में स्वीकार करता है।
| विधि | सिंक | विशेषाधिकार |
|---|---|---|
2xx auth helper के बाद डुप्लिकेट X-Auth-User | StateAuthorized ओवरले फिर HttpSetMimeHeader (authproxy.cc:660-690, utils.cc:87-102) | अखंडता (लैब-प्रमाणित): ऑरिजिन last-wins। लैब: X-Auth-User-0: realuser साथ में X-Auth-User-1: ATS-AUTHPROXY-PREFIX-WITNESS। CONTROL none/single REALUSER-ONLY ही रहते हैं। |
| वही प्लांट | उस हेडर पर आधारित ऑरिजिन ACL / उपयोगकर्ता लुकअप | रीकॉन (अनुमानित): जो भी वह प्लांट की गई पहचान ऑरिजिन पर पढ़ सकती है। हीप डंप नहीं। ATS कॉन्फ़िग नहीं। |
| उन्हीं डुप्लिकेट्स के साथ auth helper 403 | StateUnauthorized; ऑरिजिन पुनः सक्षम नहीं | बंद (लैब-प्रमाणित): ऑरिजिन हिट अपरिवर्तित। क्लाइंट 403। बॉडी में witness नहीं। |
लैब-प्रमाणित बनाम अनुमानित: डुप्लिकेट last-wins, सिंगल ओवरराइट, none, और 403-न-पहुँचना लैब हैं। प्लांट के बाद ऑरिजिन विशेषाधिकार last-wins पहचान से अनुमानित है।
आवश्यक: --forward-header-prefix के साथ authproxy.so। क्लाइंट को auth पास करना होगा (2xx)। ऑरिजिन को उन प्रीफ़िक्स हेडरों को पहचान मानना होगा (जो इस विकल्प के होने का कारण है)। डिफ़ॉल्ट plugin.config में लोड नहीं होता।
| सतह | लैब |
|---|---|
| कोई क्लाइंट प्रीफ़िक्स हेडर नहीं | CONTROL none: origin REALUSER-ONLY |
| एकल क्लाइंट प्रीफ़िक्स | CONTROL single: पहला फ़ील्ड अधिलेखित; witness जीवित नहीं रहता |
| Auth helper 403 | origin तक नहीं पहुँचा (control-403=yes) |
| प्लगइन लोड नहीं हुआ | leftover लागू नहीं होता |
Hop-by-hop / @ हेडर | प्लगइन हुक से पहले हटा दिए गए (CVE-2026-33267) |
| खाली auth-response हेडर सूची | अब दावा नहीं करता (changelog) |
certifier SNI / url_sig C= | इस पिन पर बंद (CVE-2026-58162 / 58181) |
CVE-2026-58162 नहीं। uri_signing पर केवल SHA-256/SHA-512। url_sig C= में अनुपस्थित डेलिमिटर अभी भी अस्वीकार करता है।
python3 ats-authproxy-prefix-Abraxas-Labs.py
या
cd lab
./run.sh
Loopback 127.0.0.1:18760 (origin 18761, auth helper 18762)। Compose प्रोजेक्ट ats-authproxy-prefix। इमेज ats-10.2.0-lab:local। Witness ATS-AUTHPROXY-PREFIX-WITNESS। अंतिम पंक्ति:
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
ओवरले से पहले --forward-header-prefix से शुरू होने वाले नाम वाले प्रत्येक क्लाइंट फ़ील्ड को हटा दें। HttpRemoveMimeHeader पहले से ही TSMimeHdrFieldFind को तब तक चलाता है जब तक कोई शेष न रहे (utils.cc:104-114)। इसे कॉन्फ़िगर किए गए प्रीफ़िक्स के लिए क्लाइंट अनुरोध पर उपयोग करें, फिर सेट करें। HttpSetMimeHeader को TSMimeHdrFieldNextDup अतिरिक्त फ़ील्ड्स को उसी तरह नष्ट करना चाहिए जैसे origin_server_auth का set_header और access_control का setHeader पहले से करते हैं।
तब तक, ओरिजिन ACL को authproxy प्रीफ़िक्स हेडर की ओर इंगित न करें जब तक कि ओरिजिन पहले-जीतता-है (first-wins) न हो, या ओरिजिन पर डुप्लिकेट प्रीफ़िक्स नामों को अस्वीकार न करें।
b1df7334b39a878971c376da849e8da4984918b6)plugins/authproxy/authproxy.cc StateAuthorizedplugins/authproxy/utils.cc HttpSetMimeHeader / HttpRemoveMimeHeaderorigin_server_auth.cc set_header NextDup को चलाता है