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.
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ń.
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.
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.
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.
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:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:HJupyter Server Proxy
APPJupyter< 3.2.34.0.0 – 4.1.1 (bez)
Powiązane podatności
Reflected XSS w Jupyter Server Proxy — endpoint /proxy
Jupyter Server Proxy is a Jupyter notebook server extension to proxy web services. Versions of Jupyter Server ...
Stored XSS w Jupyter Server umożliwiający RCE przez nbconvert
Brak walidacji podpisów JWT w jupyterhub-ltiauthenticator (LTI13)
RCE w szablonie rozszerzenia JupyterLab via GitHub Actions workflow