Source: jupyter-server X-Debbugs-CC: [email protected] Severity: grave Tags: security
Hi, The following vulnerabilities were published for jupyter-server. CVE-2025-61669[0]: | Jupyter Server is the backend for Jupyter web applications. In | jupyter_server versions through 2.17.0, the next query parameter in | the login flow is insufficiently validated in | `LoginFormHandler._redirect_safe()`, which allows redirects to | arbitrary external domains via values such as `///example.com`. An | attacker can use a crafted login URL to redirect users to a | malicious site and facilitate phishing attacks. This issue is fixed | in version 2.18.0. https://github.com/jupyter-server/jupyter_server/security/advisories/GHSA-qh7q-6qm3-653w CVE-2026-40110[1]: | Jupyter Server is the backend for Jupyter web applications. In | versions 2.17.0 and earlier, the Origin header validation uses | Python's re.match() to check incoming origins against the | allow_origin_pat configuration value. Because re.match() only | anchors at the start of the string and does not require a full | match, a pattern intended to match only a trusted domain (e.g., | trusted.example.com) will also match any origin that begins with | that domain followed by additional characters (e.g., | trusted.example.com.evil.com). An attacker who controls such a | domain can bypass the CORS origin restriction and make cross-origin | requests to the Jupyter Server API from an untrusted site. This | issue has been fixed in version 2.18.0. https://github.com/jupyter-server/jupyter_server/security/advisories/GHSA-24qx-w28j-9m6p https://github.com/jupyter-server/jupyter_server/pull/603 https://github.com/jupyter-server/jupyter_server/commit/057869a327c46730afede3eab0ca2d2e3e74acea (v2.18.0) https://github.com/jupyter-server/jupyter_server/commit/49b34392feaa97735b3b777e3baf8f22f2a14ed8 (v2.18.0) CVE-2026-35397[2]: | Jupyter Server is the backend for Jupyter web applications. In | versions 2.17.0 and earlier, a path traversal vulnerability in the | REST API allows an authenticated user to escape the configured | root_dir and access sibling directories whose names begin with the | same prefix as the root_dir. For example, with a root_dir named | "test", the API permits access to a sibling directory named | "testtest" through a crafted request to the /api/contents endpoint | using encoded path components. An attacker can read, write, and | delete files in affected sibling directories. Multi-tenant | deployments using predictable naming schemes are particularly at | risk, as a user with a directory named "user1" could access | directories for user10 through user19 and beyond. A user who can | choose a single-character folder name could gain access to a | significant number of sibling directories. Version 2.18.0 contains | a fix. As a workaround, ensure folder names do not share a common | prefix with any sibling directory. https://github.com/jupyter-server/jupyter_server/security/advisories/GHSA-5789-5fc7-67v3 CVE-2026-40934[3]: | Jupyter Server is the backend for Jupyter web applications. In | versions 2.17.0 and earlier, the secret used to sign authentication | cookies is persisted to a static file at | ~/.local/share/jupyter/runtime/jupyter_cookie_secret and is never | rotated when a user changes their password. After a password reset | and server restart, any previously issued authentication cookie | remains cryptographically valid because the signing key has not | changed. An attacker who has captured a session cookie through any | means retains full authenticated access to the server regardless of | subsequent password changes. This affects deployments using | password-based authentication, particularly shared or public-facing | servers where credential rotation is expected to revoke existing | sessions. This issue has been fixed in version 2.18.0. https://github.com/jupyter-server/jupyter_server/security/advisories/GHSA-5mrq-x3x5-8v8f If you fix the vulnerabilities please also make sure to include the CVE (Common Vulnerabilities & Exposures) ids in your changelog entry. For further information see: [0] https://security-tracker.debian.org/tracker/CVE-2025-61669 https://www.cve.org/CVERecord?id=CVE-2025-61669 [1] https://security-tracker.debian.org/tracker/CVE-2026-40110 https://www.cve.org/CVERecord?id=CVE-2026-40110 [2] https://security-tracker.debian.org/tracker/CVE-2026-35397 https://www.cve.org/CVERecord?id=CVE-2026-35397 [3] https://security-tracker.debian.org/tracker/CVE-2026-40934 https://www.cve.org/CVERecord?id=CVE-2026-40934 Please adjust the affected versions in the BTS as needed.

