CRITICAL🇬🇧 English

CVE-2024-28179

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

CVSS 9.0v3.1pub. 2024-03-20upd. 2025-02-21

Jupyter Server Proxy w wersjach przed 3.2.3 i 4.1.1 nie weryfikował poprawnie uwierzytelnienia użytkownika podczas proxowania połączeń websocket, umożliwiając nieuwierzytelniony dostęp każdemu, kto miał dostęp sieciowy do serwera Jupyter. W wielu przypadkach prowadzi to do zdalnego wykonania kodu (RCE) bez konieczności posiadania jakichkolwiek poświadczeń.

Pokaż oryginał (EN)

Jupyter Server Proxy allows users to run arbitrary external processes alongside their Jupyter notebook servers and provides authenticated web access. Prior to versions 3.2.3 and 4.1.1, Jupyter Server Proxy did not check user authentication appropriately when proxying websockets, allowing unauthenticated access to anyone who had network access to the Jupyter server endpoint. This vulnerability can allow unauthenticated remote access to any websocket endpoint set up to be accessible via Jupyter Server Proxy. In many cases, this leads to remote unauthenticated arbitrary code execution, due to how affected instances use websockets. The websocket endpoints exposed by `jupyter_server` itself is not affected. Projects that do not rely on websockets are also not affected. Versions 3.2.3 and 4.1.1 contain a fix for this issue.

🤖 Analiza AI
Jak działa

Podatność wynika z pominięcia kontroli uwierzytelnienia (CWE-306) w mechanizmie proxy dla połączeń websocket. Atakujący posiadający dostęp sieciowy do endpointu serwera Jupyter może bezpośrednio komunikować się z dowolnym endpointem websocket udostępnionym przez Jupyter Server Proxy, omijając całkowicie warstwę autoryzacji. Ponieważ wiele aplikacji działających za Jupyter Server Proxy używa websocketów do wykonywania operacji systemowych lub uruchamiania kodu, nieautoryzowany dostęp do tych endpointów skutkuje typowo możliwością zdalnego wykonania dowolnych poleceń.

Skutki

Atakujący bez żadnych poświadczeń może uzyskać zdalny dostęp do endpointów websocket i w wielu typowych konfiguracjach wykonać dowolny kod na serwerze (RCE), co może prowadzić do pełnego przejęcia systemu, wycieku danych oraz naruszenia poufności, integralności i dostępności.

Mitygacja

Należy zaktualizować Jupyter Server Proxy do wersji 3.2.3 lub 4.1.1, które zawierają poprawkę dla tego problemu. Jako środek tymczasowy zaleca się ograniczenie dostępu sieciowego do serwera Jupyter wyłącznie do zaufanych sieci lub hostów za pomocą firewall.

Kogo dotyczy

Jupyter Server Proxy w wersjach przed 3.2.3 (gałąź 3.x) oraz przed 4.1.1 (gałąź 4.x). Podatność dotyczy wyłącznie instancji korzystających z funkcji proxy websocketów — projekty nieużywające websocketów nie są zagrożone.

Uwagi

Podatność nie dotyczy natywnych endpointów websocket samego `jupyter_server` — wyłącznie mechanizmu proxy w `jupyter-server-proxy`. Poprawka dostępna w commitach 764e499 oraz bead903 w repozytorium jupyterhub/jupyter-server-proxy.

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

    APP
    Jupyter
    < 3.2.34.0.0 – 4.1.1 (bez)
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
Tagi
RCE
CWE
Referencje

Powiązane podatności

CVE-2024-35225CRITICAL9.6PL ✓ten sam produkt

Reflected XSS w Jupyter Server Proxy — endpoint /proxy

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