{"id":"GHSA-fvcq-4x64-hqxr","summary":"Jupyter Server Proxy has a reflected XSS issue in host parameter","details":"### Impact\n\nThere is a reflected cross-site scripting (XSS) issue in `jupyter-server-proxy`[1]. The `/proxy` endpoint accepts a `host` path segment in the format `/proxy/\u003chost\u003e`. 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/\u003chost\u003e`, which runs the custom JavaScript contained in `host` set by the actor.\nAs 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. This issue exists in the latest release of `jupyter-server-proxy`, currently `v4.1.2`.\n**Impacted versions:** `\u003e=3.0.0,\u003c=4.1.2`\n\n### Patches\n\nThe patches are included in `==4.2.0` and `==3.2.4`.\n\n### Workarounds\n\nServer operators who are unable to upgrade can disable the `jupyter-server-proxy` extension with:\n\n```\njupyter server extension disable jupyter-server-proxy\n```\n\n### References\n\n[1] : https://github.com/jupyterhub/jupyter-server-proxy/\n[2] : https://github.com/jupyterhub/jupyter-server-proxy/blob/62a290f08750f7ae55a0c29ca339c9a39a7b2a7b/jupyter_server_proxy/handlers.py#L328","aliases":["CVE-2024-35225","PYSEC-2024-236"],"modified":"2026-06-10T17:14:15.885916313Z","published":"2024-06-11T21:12:47Z","database_specific":{"nvd_published_at":"2024-06-11T22:15:09Z","cwe_ids":["CWE-116","CWE-79"],"severity":"CRITICAL","github_reviewed":true,"github_reviewed_at":"2024-06-11T21:12:47Z"},"references":[{"type":"WEB","url":"https://github.com/jupyterhub/jupyter-server-proxy/security/advisories/GHSA-fvcq-4x64-hqxr"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2024-35225"},{"type":"WEB","url":"https://github.com/jupyterhub/jupyter-server-proxy/commit/7abc9dc5bbb0b4b440548a5375261b8b8192fc22"},{"type":"WEB","url":"https://github.com/jupyterhub/jupyter-server-proxy/commit/ff78128087e73fb9d0909e1366f8bf051e8ea878"},{"type":"PACKAGE","url":"https://github.com/jupyterhub/jupyter-server-proxy"},{"type":"WEB","url":"https://github.com/jupyterhub/jupyter-server-proxy/blob/62a290f08750f7ae55a0c29ca339c9a39a7b2a7b/jupyter_server_proxy/handlers.py#L328"},{"type":"WEB","url":"https://github.com/pypa/advisory-database/tree/main/vulns/jupyter-server-proxy/PYSEC-2024-236.yaml"}],"affected":[{"package":{"name":"jupyter-server-proxy","ecosystem":"PyPI","purl":"pkg:pypi/jupyter-server-proxy"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"3.0.0"},{"fixed":"3.2.4"}]}],"versions":["3.0.0","3.0.1","3.0.2","3.1.0","3.2.0","3.2.1","3.2.2","3.2.3"],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2024/06/GHSA-fvcq-4x64-hqxr/GHSA-fvcq-4x64-hqxr.json"}},{"package":{"name":"jupyter-server-proxy","ecosystem":"PyPI","purl":"pkg:pypi/jupyter-server-proxy"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.0.0"},{"fixed":"4.2.0"}]}],"versions":["4.0.0","4.1.0","4.1.1","4.1.2"],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2024/06/GHSA-fvcq-4x64-hqxr/GHSA-fvcq-4x64-hqxr.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H"}]}