
T3 Code 61c3794c بقايا origin. ترقية wsTicket تتجاهل Origin. يُقبل Cookie المفقود لـ Origin. يُرفض Cookie ذو Origin عدائي. مختبر Loopback.
تذكرة socket في عنوان URL لا تهتم بأي موقع طلبها. تُرفض جلسات الكوكيز ذات Origin عدائي. تُقبل جلسات الكوكيز التي لا تحتوي على ترويسة Origin. تتجاهل Bearer tokens الـ Origin عمدًا. كوكي الجلسة هو SameSite=Lax، وهو ما يمنع حاليًا WebSocket عبر الكوكيز بين المواقع.
الفئة: بقايا Origin
الوصول: محلي / حامل التذكرة (Origin عدائي على wsTicket؛ 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 |
| المختبر | authenticateWebSocketUpgrade الإنتاجي على طبقة اختبار Effect |
يحتاج إلى wsTicket حيّ أو كوكي سيُرفقه المتصفح. لا تُرفق كوكيز Lax بمصافحة WebSocket بين المواقع في المتصفحات الحالية. التذكرة في سلسلة الاستعلام هي المسار الذي يتجاوز Origin بالكامل.
| الصلاحية | الطريقة / نقطة الوصول | الاستطلاع / السلامة / التوفر | مُثبت مختبريًا أو مُستنتج |
|---|---|---|---|
مصادقة ترقية /ws بتذكرة وOrigin عدائي | authenticateWebSocketUpgrade، استعلام wsTicket | السلامة (جلسة على socket) | مُثبت مختبريًا. ticket-hostile-origin=accepted، Origin https://evil.example |
| مصادقة ترقية بالكوكيز بدون Origin | احتياطي الكوكيز عبر isBrowserOriginAllowed (origin === undefined يُرجع true) | السلامة | مُثبت مختبريًا. cookie-missing-origin=accepted |
| مصادقة ترقية Bearer من Origin عدائي | نفس المصادِق، ترويسة Authorization | السلامة | مُثبت مختبريًا. bearer-hostile-origin=accepted (اختبار المنتج؛ ليس كوكي) |
| ضابط سلبي: كوكي + Origin عدائي | Origin http://192.168.1.50:8080 | لا ينطبق | مُثبت مختبريًا. مرفوض ServerAuthInvalidCredentialError |
| ضابط سلبي: كوكي + Origin موثوق | Origin من نفس المضيف | لا ينطبق | مُثبت مختبريًا. مقبول |
يبقى مغلقًا في هذه البقايا
| المحور | الطريقة / نقطة الوصول | لماذا هو مغلق |
|---|---|---|
| السلامة | WebSocket بالكوكيز من موقع عشوائي مع ترويسة Origin | isBrowserOriginAllowed يرفض؛ SameSite=Lax يحجب الكوكي أيضًا |
| السلامة | /ws غير مُصادَق | الاعتماد المفقود يفشل |
| السلامة | CSRF بالكوكيز بين المواقع في المتصفحات الحالية | Cookies.set sameSite: "lax" في apps/server/src/auth/http.ts |
سطر التدقيق "لا يوجد فحص 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. مختبر loopback فقط. دون أي ضمان.
مختبرات أبراكساس [email protected]
يُرجى نسب CVE إلى Abraxas Labs.