
T3 Code 61c3794c Origin-Überbleibsel. wsTicket-Upgrade ignoriert Origin. Cookie ohne Origin wird akzeptiert. Cookie mit feindlichem Origin wird abgelehnt. Loopback-Lab.
Ein Socket-Ticket in der URL interessiert nicht, welche Website es angefordert hat. Cookie-Sitzungen mit einem feindlichen Origin werden abgelehnt. Cookie-Sitzungen ohne Origin-Header werden akzeptiert. Bearer-Tokens ignorieren Origin absichtlich. Das Sitzungs-Cookie ist SameSite=Lax, was derzeit eine Cross-Site-Cookie-WebSocket verhindert.
Klasse: Origin-Überbleibsel
Reichweite: Lokal / Ticket-Inhaber (feindlicher Origin bei wsTicket; fehlender Origin bei Cookies)
T3 Code 61c3794c - Ping
| ID | noch keine CVE |
| Klasse | Origin-Überbleibsel |
| Reichweite | Lokal (Ticket in der Upgrade-URL oder ein Cookie-Client, der Origin weglässt) |
| CWE | CWE-346 / CWE-200 |
| CVSS | Niedrig: 3.1 CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:L/I:L/A:N |
| Produkt | T3 Code |
| Betroffen | 61c3794c32b0eeebfac09add43e403618c65d2d7 |
| Auth | gültiges wsTicket oder Browser-Sitzungs-Cookie |
| Lizenz | GNU Affero GPL v3.0 |
| Lab | produktives authenticateWebSocketUpgrade auf der Effect-Testebene |
Benötigt ein gültiges wsTicket oder ein Cookie, das der Browser anhängt. Lax-Cookies werden in aktuellen Browsern nicht an einen Cross-Site-WebSocket-Handshake angehängt. Ein Ticket im Query-String ist der Pfad, der Origin vollständig umgeht.
| Berechtigung | Methode / Sink | Recon / Integrität / Verfügbarkeit | Im Lab nachgewiesen oder abgeleitet |
|---|---|---|---|
Ein /ws-Upgrade mit einem Ticket und einem feindlichen Origin authentifizieren | authenticateWebSocketUpgrade, wsTicket-Query | Integrität (Sitzung auf dem Socket) | Im Lab nachgewiesen. ticket-hostile-origin=akzeptiert, Origin https://evil.example |
| Ein Cookie-Upgrade ohne Origin authentifizieren | Cookie-Fallback über isBrowserOriginAllowed (origin === undefined gibt true zurück) | Integrität | Im Lab nachgewiesen. cookie-missing-origin=akzeptiert |
| Ein Bearer-Upgrade von einem feindlichen Origin authentifizieren | derselbe Authenticator, Authorization-Header | Integrität | Im Lab nachgewiesen. bearer-hostile-origin=akzeptiert (Produkttest; kein Cookie) |
| Negativkontrolle: Cookie + feindlicher Origin | Origin http://192.168.1.50:8080 | k. A. | Im Lab nachgewiesen. abgelehnt ServerAuthInvalidCredentialError |
| Negativkontrolle: Cookie + vertrauenswürdiger Origin | Origin derselben Hosts | k. A. | Im Lab nachgewiesen. akzeptiert |
Bleibt bei diesem Überbleibsel geschlossen
| Achse | Methode / Sink | Warum es geschlossen ist |
|---|---|---|
| Integrität | Cookie-WebSocket von einer beliebigen Website mit einem Origin-Header | isBrowserOriginAllowed lehnt ab; SameSite=Lax hält das Cookie ebenfalls zurück |
| Integrität | Nicht authentifiziertes /ws | fehlende Anmeldedaten schlagen fehl |
| Integrität | Cross-Site-Cookie-CSRF in aktuellen Browsern | Cookies.set sameSite: "lax" in apps/server/src/auth/http.ts |
Die Audit-Aussage „keine Origin-Prüfung irgendwo auf dem Upgrade-Pfad" ist zu weit gefasst. Feindlicher Cookie-Origin wird bei diesem Pin abgelehnt. Das Überbleibsel ist der Ticket-Pfad und der Cookie-Zweig ohne Origin.
GET /ws ruft authenticateWebSocketUpgrade auf. Wenn wsTicket vorhanden ist, verifiziert die Funktion das Ticket und kehrt zurück, bevor isBrowserOriginAllowed erreicht wird. Der Cookie-Fallback ruft es tatsächlich auf. Ich habe ein Ticket und eine Cookie-Sitzung auf der EnvironmentAuth-Testebene erzeugt und die Origin-Matrix durch die Produktionsfunktion geschickt.
Irrwege: „keine Origin-Prüfung" für Cookie-Upgrades zu melden (feindlicher Origin wird abgelehnt).
python3 t3code-websocket-ticket-origin-Abraxas-Labs.py
oder:
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
Führe isBrowserOriginAllowed auch auf dem Ticket-Pfad aus oder binde Tickets an den Origin, der sie ausgestellt hat. Behandle einen fehlenden Origin bei Cookie-Anmeldedaten als Fehler statt als Erfolg. Füge eine explizite Origin-Allowlist beim Upgrade hinzu (devOrigin, t3code://app, konfigurierte Tunnel-Hosts). Behalte SameSite=Lax (oder Strict) bei.
61c3794c32b0eeebfac09add43e403618c65d2d7EnvironmentAuth.authenticateWebSocketUpgradeGNU Affero GPL v3.0. Siehe LICENSE. Nur Loopback-Lab. Keine Gewährleistung.
Abraxas Labs [email protected]
Bitte schreibe die CVE Abraxas Labs zu.