CRITICAL🇬🇧 English

CVE-2024-35225

Reflected XSS w Jupyter Server Proxy — endpoint /proxy

CVSS 9.6v3.1pub. 2024-06-11upd. 2025-04-10

Jupyter Server Proxy w wersjach 3.x przed 3.2.4 oraz 4.x przed 4.2.0 zawiera podatność reflected XSS w endpointcie `/proxy/<host>`. Atakujący może wykonać dowolny kod JavaScript w kontekście sesji JupyterLab ofiary, co daje mu rozległy dostęp do jej środowiska pracy.

Pokaż oryginał (EN)

Jupyter Server Proxy allows users to run arbitrary external processes alongside their notebook server and provide authenticated web access to them. Versions of 3.x prior to 3.2.4 and 4.x prior to 4.2.0 have a reflected cross-site scripting (XSS) issue. The `/proxy` endpoint accepts a `host` path segment in the format `/proxy/<host>`. When this endpoint is called with an invalid `host` value, `jupyter-server-proxy` replies with a response that includes the value of `host`, without sanitization [2]. A third-party actor can leverage this by sending a phishing link with an invalid `host` value containing custom JavaScript to a user. When the user clicks this phishing link, the browser renders the response of `GET /proxy/<host>`, which runs the custom JavaScript contained in `host` set by the actor. As any arbitrary JavaScript can be run after the user clicks on a phishing link, this issue permits extensive access to the user's JupyterLab instance for an actor. Patches are included in versions 4.2.0 and 3.2.4. As a workaround, server operators who are unable to upgrade can disable the `jupyter-server-proxy` extension.

🤖 Analiza AI
Jak działa

Endpoint `/proxy/<host>` zwraca wartość parametru `host` bezpośrednio w odpowiedzi HTTP bez sanityzacji. Atakujący przygotowuje złośliwy link phishingowy, w którym segment `host` zawiera niestandardowy kod JavaScript. Gdy użytkownik kliknie taki link, przeglądarka wykonuje żądanie GET do `/proxy/<host>`, a serwer odsyła odpowiedź zawierającą niezmodyfikowany, złośliwy payload. Przeglądarka interpretuje i wykonuje osadzony JavaScript w kontekście zaufanej domeny serwera Jupyter.

Skutki

Atakujący uzyskuje możliwość wykonania dowolnego kodu JavaScript w sesji JupyterLab użytkownika, co może prowadzić do kradzieży tokenów sesji, dostępu do notebooków i danych oraz wykonywania działań w imieniu ofiary.

Mitygacja

Należy zaktualizować Jupyter Server Proxy do wersji 4.2.0 lub 3.2.4, w których zastosowano odpowiednią sanityzację wartości `host`. Jeśli aktualizacja nie jest możliwa, operatorzy serwera powinni wyłączyć rozszerzenie `jupyter-server-proxy` jako obejście tymczasowe.

Kogo dotyczy

Jupyter Server Proxy w wersjach 3.x przed 3.2.4 oraz 4.x przed 4.2.0

Uwagi

Producent udostępnił obejście dla operatorów niemogących zaktualizować oprogramowania: wyłączenie rozszerzenia jupyter-server-proxy. Podatność wymaga interakcji użytkownika (kliknięcia w link phishingowy), co odzwierciedla wektor CVSS UI:R.

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H
  • Jupyter Server Proxy

    APP
    Jupyter
    3.0.0 – 3.2.4 (bez)4.1.2 – 4.2.0 (bez)
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
Tagi
XSS
CWE
Referencje

Powiązane podatności

CVE-2024-28179CRITICAL9.0PL ✓ten sam produkt

Brak uwierzytelnienia przy proxy websocketów w Jupyter Server Proxy — RCE

CVE-2022-21697MEDIUM6.3ten sam produkt

Jupyter Server Proxy is a Jupyter notebook server extension to proxy web services. Versions of Jupyter Server ...

CVE-2026-44727CRITICAL9.3PL ✓ten sam vendor

Stored XSS w Jupyter Server umożliwiający RCE przez nbconvert

CVE-2023-25574CRITICAL10.0PL ✓ten sam vendor

Brak walidacji podpisów JWT w jupyterhub-ltiauthenticator (LTI13)

CVE-2024-39700CRITICAL9.9PL ✓ten sam vendor

RCE w szablonie rozszerzenia JupyterLab via GitHub Actions workflow