Jupyter Server Proxy has a reflected XSS issue in host parameter
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- Required
- Attack complexity
- Low
- Impact type
- Cross-site scripting
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-79.
Summary
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.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| jupyterhub | jupyter-server-proxy | 3.0.0 to before 3.2.4; 4.0.0 to before 4.2.0 | 3.2.4, 4.2.0 | Patch available | CNA |
| — | jupyter-server-proxy (PyPI) | 3.0.0 to before 3.2.4 | 3.2.4 | Patch available | GHSA-fvcq-4x64-hqxr |
| — | jupyter-server-proxy (PyPI) | 4.0.0 to before 4.2.0 | 4.2.0 | Patch available | GHSA-fvcq-4x64-hqxr |
- jupyter-server-proxy Vendorjupyterhub Affected 3.0.0 to before 3.2.4; 4.0.0 to before 4.2.0 Fixed in 3.2.4, 4.2.0 Patch available CNA
- jupyter-server-proxy (PyPI) Vendor— Affected 3.0.0 to before 3.2.4 Fixed in 3.2.4 Patch available GHSA-fvcq-4x64-hqxr
- jupyter-server-proxy (PyPI) Vendor— Affected 4.0.0 to before 4.2.0 Fixed in 4.2.0 Patch available GHSA-fvcq-4x64-hqxr
CPE configurations NVD · 1
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:jupyter:jupyter_server_proxy:*:*:*:*:*:*:*:* | 3.0.0 to before 3.2.4; 4.1.2 to before 4.2.0 | Vulnerable | jupyterlab |
- cpe:2.3:a:jupyter:jupyter_server_proxy:*:*:*:*:*:*:*:* Versions 3.0.0 to before 3.2.4; 4.1.2 to before 4.2.0 Vulnerable ·jupyterlab
Remediation
- Fix · CNA jupyter-server-proxy (jupyterhub) Fixed in 3.2.4, 4.2.0
- Fix · GHSA-fvcq-4x64-hqxr jupyter-server-proxy (PyPI) Fixed in 3.2.4 Advisory →
- Fix · GHSA-fvcq-4x64-hqxr jupyter-server-proxy (PyPI) Fixed in 4.2.0 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2024-35225
- 2026-10-03 Alias added: GHSA-fvcq-4x64-hqxr
References
Patch 2
Advisory 2
More jupyterhub vulnerabilities
- TI-2025-23499 Jupyter Remote Desktop Proxy makes TigerVNC accessible via the network and not just via a UNIX socket as intended CVSS 4.0CRITICAL 9.0
- TI-2023-10877 JupyterHub's LTI13Authenticator: JWT signature not validated CVSS 3.1CRITICAL 10.0
- TI-2021-16545 Remote code execution in Binderhub CVSS 3.1CRITICAL 9.8
- TI-2021-18033 Improper Access Control in jupyterhub-firstuseauthenticator CVSS 3.1CRITICAL 9.8
- TI-2021-16546 Code injection in nbgitpuller CVSS 3.1CRITICAL 9.6
- TI-2024-18755 Jupyter Server Proxy's Websocket Proxying does not require authentication CVSS 3.1CRITICAL 9.8
Sources
- CVE-2024-35225 · CVE Program
- CVE-2024-35225 · NVD
- FIRST EPSS
- GHSA-fvcq-4x64-hqxr · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences