Jupyter Server: Gateway-WebSocket-Handler umgeht Autorisierung zur Kernel-Ausführung
Zusammenfassung
Der Gateway-WebSocket-Handler von Jupyter Server prüft zwar, ob ein Benutzer authentifiziert ist, fragt jedoch den konfigurierten Authorizer nicht ab, ob dieser Benutzer Kernel ausführen darf.
In Jupyter Server 2.0.0 bis 2.5.0 ersetzte die Aktivierung von GatewayClient.url den regulären Kernel-Kanal-Handler automatisch durch diesen gateway-spezifischen Handler. Ein authentifizierter Benutzer, dem die Aktion execute für die Ressource kernels verweigert wird, kann somit dennoch einen Kernel-Kanal öffnen und Nachrichten an den Upstream-Kernel senden.
Details
Der normale Handler führt die erwartete Autorisierungsprüfung durch, bevor die WebSocket-Verbindung erstellt wird:
Der Gateway-Handler prüft lediglich current_user und öffnet anschließend den Upstream-Kanal. Er ruft authorizer.is_authorized(...) niemals auf:
https://github.com/jupyter-server/jupyter_server/blob/v2.5.0/jupyter_server/gateway/handlers.py#L49-L75 https://github.com/jupyter-server/jupyter_server/blob/v2.5.0/jupyter_server/gateway/handlers.py#L87-L98
Der Gateway-Modus wählte diesen Handler automatisch aus, indem Handler mit übereinstimmenden Routen ersetzt wurden:
https://github.com/jupyter-server/jupyter_server/blob/v2.5.0/jupyter_server/serverapp.py#L437-L446
PR #1261 ersetzte den normalen Handler nicht mehr und leitete den Gateway-Datenverkehr stattdessen über GatewayWebSocketConnection weiter. Dies behob anscheinend die Standard-Gateway-Konfiguration in 2.6.0, wenngleich der veraltete Handler in aktuellen Versionen weiterhin vorhanden ist und weiterhin direkt registriert werden kann.
https://github.com/jupyter-server/jupyter_server/pull/1261
Validierung auf Code-Ebene
- Konfigurieren Sie einen benutzerdefinierten Authorizer, der für einen regulären authentifizierten Benutzer bei
executeaufkernelsden Wert false zurückgibt. - Konfigurieren Sie
GatewayClient.urlauf Jupyter Server 2.0.0-2.5.0. - Der normale Handler
KernelWebsocketHandlerwürde diesen Benutzer inpre_getmit 403 abweisen. - Der Gateway-Modus ersetzt ihn durch
WebSocketChannelsHandler. Dessen Methodeauthenticateweist nur anonyme Benutzer ab, undgetfährt ohne Autorisierungsentscheidung mit dem Upstream-Gateway fort.
Auswirkungen
Hierbei handelt es sich um eine fehlende Autorisierungsprüfung, nicht um eine Authentifizierungsumgehung. Dies ist relevant für Deployments, die einen restriktiven benutzerdefinierten Authorizer und Jupyter Gateway/Enterprise Gateway verwenden. Ein authentifizierter Benutzer mit Nur-Lese- oder anderweitig eingeschränkten Rechten kann die vorgesehene Autorisierungsgrenze überschreiten und Kernel-Ausführungsrechte erlangen, wodurch Zugriff auf Daten und Anmeldeinformationen besteht, die diesem Kernel zur Verfügung stehen.
Betroffene Versionen
- Standard-Gateway-Konfiguration: 2.0.0 bis 2.5.0
- 2.6.0 und neuer: Der Standardpfad verwendet den autorisierten Standard-Handler, das manuelle Registrieren des veralteten Moduls
jupyter_server.gateway.handlerslegt jedoch weiterhin das alte Verhalten offen.
Was zu tun ist
In der Standard-Gateway-Konfiguration wird das Problem durch eine Aktualisierung auf Jupyter Server 2.6.0 oder höher behoben. Vermeiden Sie in Version 2.6.0 und neuer die manuelle Registrierung des veralteten Moduls jupyter_server.gateway.handlers, da dieses weiterhin das anfällige Verhalten aufweist.
Betroffene Software
Klicken Sie auf eine Technologie, um alle zugehörigen Schwachstellen anzuzeigen.
| Plattform | Paket | Anfällige Versionen | Behoben in |
|---|---|---|---|
| Python (PyPI) | jupyter-server | >= 2.0.0, < 2.6.0 | 2.6.0 |
Verweise
- https://github.com/jupyter-server/jupyter_server/security/advisories/GHSA-354v-3q48-cv69
- https://nvd.nist.gov/vuln/detail/CVE-2026-114135
- https://github.com/jupyter-server/jupyter_server/pull/1261
- https://github.com/jupyter-server/jupyter_server/commit/35ffe5d435682128da16dc144a8e9e9f8fa85dd8
- https://github.com/jupyter-server/jupyter_server
- https://github.com/jupyter-server/jupyter_server/releases/tag/v2.6.0
- CVSS-Vektor
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H- Schwäche (CWE)
CWE-862- Plattform
- Python (PyPI)
- Paket
jupyter-server- Veröffentlicht
- 22.10.2026
- Aktualisiert
- 24.10.2026 00:07
Quellen und Lizenzen · Von DockRay bearbeitet oder übersetzt; Rechte und Lizenzen der Quellen bleiben erhalten.
OSV / GitHub Advisory Database - GHSA-354v-3q48-cv69 - CC BY 4.0
Schwachstellenhistorie: jupyter-server
Alle veröffentlichten Schwachstellen dieses Pakets (Python (PyPI)), neueste zuerst. Zeigt, ob es ein einmaliger Ausrutscher ist oder ein Paket, das man im Auge behalten muss.
- Einträge insgesamt
- 15
- Erste → letzte
- 11.2020 10.2026
- Ohne Fix
- 0
- In Angriffen ausgenutzt
- 0
Verteilung nach Schweregrad
- Kritisch 1
- Hoch 8
- Mittel 6
Veröffentlichungen pro Jahr
- 2020: 2
- 2021: 0
- 2022: 2
- 2023: 3
- 2024: 1
- 2025: 0
- 2026: 7
-
Jupyter Server: Gateway-WebSocket-Handler umgeht Autorisierung zur Kernel-Ausführung dieser Eintrag
Erkennen Sie Schwachstellen in Ihrer Anwendung
Mit der DockRay-Integration und aktivierter Softwareinventarisierung prüft DockRay gemeldete Komponentenversionen auf bekannte Schwachstellen und benachrichtigt Sie über bestätigte Treffer. Die Abdeckung hängt von der unterstützten Technologie und den verfügbaren Meldungen ab.