
T3 Code 61c3794c origin अवशेष। wsTicket अपग्रेड Origin को अनदेखा करता है। Origin रहित Cookie स्वीकार की जाती है। शत्रुतापूर्ण Origin वाली Cookie अस्वीकार की जाती है। Loopback प्रयोगशाला।
URL में मौजूद सॉकेट टिकट इस बात की परवाह नहीं करता कि इसे किस वेबसाइट ने मांगा था। शत्रुतापूर्ण Origin वाले कुकी सत्र अस्वीकार कर दिए जाते हैं। बिना Origin हेडर वाले कुकी सत्र स्वीकार कर लिए जाते हैं। Bearer टोकन जानबूझकर Origin को अनदेखा करते हैं। सत्र कुकी SameSite=Lax है, और यही वर्तमान में क्रॉस-साइट कुकी WebSocket को रोकता है।
वर्ग: Origin अवशेष
पहुंच: स्थानीय / टिकट धारक (wsTicket पर शत्रुतापूर्ण Origin; कुकीज़ पर अनुपस्थित Origin)
T3 Code 61c3794c - Ping
| ID | अभी तक कोई CVE नहीं |
| वर्ग | Origin अवशेष |
| पहुंच | स्थानीय (अपग्रेड URL में टिकट, या ऐसा कुकी क्लाइंट जो Origin छोड़ देता है) |
| CWE | CWE-346 / CWE-200 |
| CVSS | निम्न: 3.1 CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:L/I:L/A:N |
| उत्पाद | T3 Code |
| प्रभावित | 61c3794c32b0eeebfac09add43e403618c65d2d7 |
| प्रमाणीकरण | वैध wsTicket या ब्राउज़र सत्र कुकी |
| लाइसेंस | GNU Affero GPL v3.0 |
| लैब | Effect टेस्ट लेयर पर उत्पादन authenticateWebSocketUpgrade |
इसके लिए एक जीवंत wsTicket या ऐसी कुकी चाहिए जिसे ब्राउज़र संलग्न करेगा। वर्तमान ब्राउज़रों में Lax कुकीज़ क्रॉस-साइट WebSocket हैंडशेक के साथ संलग्न नहीं होतीं। क्वेरी स्ट्रिंग में मौजूद टिकट वही मार्ग है जो Origin को पूरी तरह से बायपास कर देता है।
| विशेषाधिकार | विधि / सिंक | रेकॉन / अखंडता / उपलब्धता | लैब-प्रमाणित या अनुमानित |
|---|---|---|---|
टिकट और शत्रुतापूर्ण Origin के साथ /ws अपग्रेड को प्रमाणित करना | authenticateWebSocketUpgrade, wsTicket क्वेरी | अखंडता (सॉकेट पर सत्र) | लैब-प्रमाणित। ticket-hostile-origin=स्वीकृत, Origin https://evil.example |
| बिना Origin वाले कुकी अपग्रेड को प्रमाणित करना | isBrowserOriginAllowed के माध्यम से कुकी फ़ॉलबैक (origin === undefined true लौटाता है) | अखंडता | लैब-प्रमाणित। cookie-missing-origin=स्वीकृत |
| शत्रुतापूर्ण Origin से Bearer अपग्रेड को प्रमाणित करना | वही प्रमाणक, Authorization हेडर | अखंडता | लैब-प्रमाणित। bearer-hostile-origin=स्वीकृत (उत्पाद परीक्षण; कुकी नहीं) |
| नकारात्मक नियंत्रण: कुकी + शत्रुतापूर्ण Origin | Origin http://192.168.1.50:8080 | लागू नहीं | लैब-प्रमाणित। अस्वीकृत ServerAuthInvalidCredentialError |
| नकारात्मक नियंत्रण: कुकी + विश्वसनीय Origin | समान-होस्ट Origin | लागू नहीं | लैब-प्रमाणित। स्वीकृत |
इस अवशेष पर बंद रहता है
| अक्ष | विधि / सिंक | यह क्यों बंद है |
|---|---|---|
| अखंडता | Origin हेडर वाली किसी यादृच्छिक वेबसाइट से कुकी WebSocket | isBrowserOriginAllowed अस्वीकार करता है; SameSite=Lax भी कुकी को रोकता है |
| अखंडता | अप्रमाणित /ws | अनुपस्थित क्रेडेंशियल विफल होता है |
| अखंडता | वर्तमान ब्राउज़रों में क्रॉस-साइट कुकी CSRF | apps/server/src/auth/http.ts में Cookies.set sameSite: "lax" |
ऑडिट पंक्ति "अपग्रेड पथ पर कहीं भी कोई Origin जाँच नहीं" बहुत व्यापक है। इस पिन पर शत्रुतापूर्ण Origin वाली कुकी अस्वीकार की जाती है। अवशेष टिकट पथ और अनुपस्थित-Origin वाली कुकी शाखा है।
GET /ws authenticateWebSocketUpgrade को कॉल करता है। यदि wsTicket मौजूद है, तो फ़ंक्शन टिकट को सत्यापित करता है और isBrowserOriginAllowed से पहले लौट आता है। कुकी फ़ॉलबैक इसे कॉल करता है। मैंने EnvironmentAuth टेस्ट लेयर पर एक टिकट और एक कुकी सत्र बनाया और Origin मैट्रिक्स को उत्पादन फ़ंक्शन के माध्यम से भेजा।
गलत मोड़: कुकी अपग्रेड के लिए "कोई Origin जाँच नहीं" की रिपोर्ट करना (शत्रुतापूर्ण Origin अस्वीकार किया जाता है)।
python3 t3code-websocket-ticket-origin-Abraxas-Labs.py
या:
cd lab
./run.sh
IOC cookie-missing-origin=accepted
IOC cookie-hostile-origin=rejected
IOC cookie-trusted-origin=accepted
IOC ticket-hostile-origin=accepted
IOC bearer-hostile-origin=accepted
IOC samesite=lax
SUCCESS T3-F04-WSORIGIN t3f04o6n1
टिकट पथ पर भी isBrowserOriginAllowed चलाएँ, या टिकटों को उसी Origin से बाँधें जिसने उन्हें जारी किया था। कुकी क्रेडेंशियल्स के लिए अनुपस्थित Origin को पास के बजाय विफलता मानें। अपग्रेड पर एक स्पष्ट Origin अनुमति-सूची जोड़ें (devOrigin, t3code://app, कॉन्फ़िगर किए गए टनल होस्ट)। SameSite=Lax (या Strict) बनाए रखें।
61c3794c32b0eeebfac09add43e403618c65d2d7EnvironmentAuth.authenticateWebSocketUpgradeGNU Affero GPL v3.0। देखें LICENSE। केवल लूपबैक लैब। कोई वारंटी नहीं।
Abraxas Labs [email protected]
कृपया CVE का श्रेय Abraxas Labs को दें।