Hoch

Jupyter Server: Gateway-WebSocket-Handler umgeht Autorisierung zur Kernel-Ausführung

  • Veröffentlicht: 22.10.2026
  • Aktualisiert: 24.10.2026 00:07

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:

https://github.com/jupyter-server/jupyter_server/blob/v2.5.0/jupyter_server/services/kernels/websocket.py#L39-L47

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

  1. Konfigurieren Sie einen benutzerdefinierten Authorizer, der für einen regulären authentifizierten Benutzer bei execute auf kernels den Wert false zurückgibt.
  2. Konfigurieren Sie GatewayClient.url auf Jupyter Server 2.0.0-2.5.0.
  3. Der normale Handler KernelWebsocketHandler würde diesen Benutzer in pre_get mit 403 abweisen.
  4. Der Gateway-Modus ersetzt ihn durch WebSocketChannelsHandler. Dessen Methode authenticate weist nur anonyme Benutzer ab, und get fä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.handlers legt 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.

PlattformPaketAnfällige VersionenBehoben in
Python (PyPI) jupyter-server >= 2.0.0, < 2.6.0 2.6.0

Verweise

CVSS-Wert 8.8/10
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.

Alle (15) im Archiv
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

  1. 2020: 2
  2. 2021: 0
  3. 2022: 2
  4. 2023: 3
  5. 2024: 1
  6. 2025: 0
  7. 2026: 7
Schweregrad:
  1. Jupyter Server: Gateway-WebSocket-Handler umgeht Autorisierung zur Kernel-Ausführung dieser Eintrag
    Hoch · 8.8 CVE-2026-114135 >= 2.0.0, < 2.6.0 2.6.0
  2. Hoch · 7.5 CVE-2024-35178 < 2.14.1 2.14.1
  3. Hoch · 7.1 CVE-2022-29241 < 1.17.1, >= 2.0.0a0, < 2.0.0a1 1.17.1, 2.0.0a1

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.

Anwendung verbinden
DockRay Newsletter

Anwendungssicherheit in Ihrem Postfach

Wichtige Schwachstellen, konkrete Empfehlungen und praktische Tipps für Ihre Anwendungen. Wählen Sie Ihre Technologien und verfolgen Sie, was für Ihr Projekt relevant ist.

  • Eine tägliche Zusammenfassung neuer Schwachstellen, auch kritischer.
  • Benachrichtigungen über wichtige Updates.
  • Praktische Tipps zur Sicherheit und Überwachung von Anwendungen.

Leer lassen, um Meldungen zu allen Technologien zu erhalten.

Kostenlos anmelden. In jeder E-Mail mit einem Klick abmelden.