LearnCTEM.com, Best CTEM Learning Platform
CVE Intelligence Hub

CVE-2026-35397: Jupyter Server Path Traversal (CVSS 7.6)

CVE-2026-35397 is a high severity path traversal in Jupyter Server with a CVSS score of 7.6. Apply the vendor fix and confirm exposure on internet facing and business critical assets first.

Last updated: Aug 28, 2026

Quick answer

Direct answer

CVE-2026-35397 is a high severity path traversal in Jupyter Server with a CVSS score of 7.6. Apply the vendor fix and confirm exposure on internet facing and business critical assets first.

Risk scores

CVSS base score
7.6HIGH
EPSS probability
0.67%
Higher than 51 percent of all CVEs
CISA KEV
Not listed
CVSS metricWhat it means
Attack vector (AV:N)Network: reachable remotely
Attack complexity (AC:L)Low complexity
Attack requirements (AT:P)Attack requirements present
Privileges required (PR:L)Low privileges required
User interaction (UI:N)No user interaction
Confidentiality (VC:H)High confidentiality impact
Integrity (VI:H)High integrity impact
Availability (VA:L)Low availability impact

CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:L/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

About Jupyter Server

CVE-2026-35397 affects Jupyter Server, a product from Jupyter. Before acting, confirm where Jupyter Server runs in your estate, who owns it and whether it is reachable from the internet, because exposure decides real risk more than the score alone.

What the flaw is

In plain terms: 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.

The weakness class is Path Traversal. An attacker can reach files outside the intended folder by tampering with a file path.

Based on its CVSS vector, the flaw can be reached over the network, needs some level of access, and needs no user interaction. Apply the vendor fix and confirm exposure on internet facing and business critical assets first.

Affected versions and timeline

FieldDetail
ProductJupyter Server
Affected versionsJupyter Server before 2.18.0
PublishedMay 5, 2026
Last modifiedAug 28, 2026
Added to CISA KEVNot listed
Assigning CNAsecurity-advisories@github.com

How to detect it

  • Inventory every instance of Jupyter Server and record the running version against the affected range above.
  • Check external attack surface scans for internet facing instances of the component.
  • Review logs on affected systems for unusual requests, errors or new processes around the vulnerable function.
  • Confirm with an authenticated vulnerability scan once your scanner has a check for this CVE.

How to fix it

  • Apply the fixed version of Jupyter Server named in the vendor advisory.
  • If patching must wait, restrict network access to the affected service and put it behind authentication or a web application firewall rule.
  • Rescan after the change to prove the exposure is gone, then close the ticket.

CTEM action plan

CTEM stageWhat to do for this CVE
ScopeAdd every business service that depends on Jupyter Server to the current CTEM cycle.
DiscoverFind all instances, including shadow and cloud deployments, and record versions and exposure.
PrioritizeRank using EPSS and CVSS together with asset exposure and business impact.
ValidateConfirm the flaw is reachable and exploitable in your environment and that compensating controls work.
MobilizeAssign the fix to the asset owner with a due date matched to the priority, then verify closure.

CWE References

Technical References

Frequently asked questions

CVE-2026-35397 is a high severity path traversal in Jupyter Server with a CVSS score of 7.6. Apply the vendor fix and confirm exposure on internet facing and business critical assets first.

Related CVEs

CRITICAL10.0
CVE-2026-44182
Jupyter Enterprise Gateway

Jupyter Enterprise Gateway launches remote Jupyter Notebook kernels across distributed clusters like Apache Spark, Kubernetes, and Docker Swarm. In versions prior to 3.3.0, the server interpolates untrusted environment variables (e.g., KERNEL_XXX) into Kubernetes manifests without YAML-aware escaping, enabling YAML injection attacks. Attackers can inject new fields, overwrite critical fields (e.g., duplicate securityContext keys, where the last one prevails), and inject document boundaries (--- for new documents, ... for end-of-document) to generate multiple resources, potentially creating arbitrary types, such as privileged pods. The Jinja2 template for the Kubernetes manifest contains several kernel_xxx variables, such as kernel_working_dir that are used when rendering the manifest and are all vectors for YAML injection. This issue has been fixed in version 3.3.0.

Jul 16, 2026
CRITICAL10.0
CVE-2026-44181
Jupyter Enterprise Gateway

Jupyter Enterprise Gateway launches remote Jupyter Notebook kernels across distributed clusters like Apache Spark, Kubernetes, and Docker Swarm. In versions 2.0.0rc2 and above, prior to 3.3.0, the environment variables (KERNEL_XXX) used during the rendering of the Kubernetes manifest are vulnerable to Server Side Template Injection (SSTI). By including Jinja2 template expressions it is possible to execution Python code and OS Commands in the Enterprise Gateway service. The code can use or steal the Kubernetes service account token, which can steal Kubernetes secrets and be used to fully compromise the Kubernetes cluster by scheduling a privileged pod or a pod with a hostPath volume mount. This issue has been fixed in version 3.3.0.

Jul 16, 2026
CRITICAL9.3
CVE-2026-54527
Jupyterlab-Git

JupyterLab Git is a Git extension for JupyterLab. From 0.30.0b3 before 0.54.0, the PlainTextDiff.ts createHeader() method passes Git filenames directly to innerHTML when rendering renamed files in commit history, allowing a crafted filename to execute JavaScript when a victim views the rename diff in the Git History tab. This issue is fixed in version 0.54.0.

Jul 8, 2026
HIGH8.8
CVE-2026-6657
Jupyter Server

A vulnerability in jupyter-server versions 1.12.0 through 2.17.0 allows an attacker to bypass CORS origin validation when the `allow_origin_pat` configuration is used. The issue arises from the use of `re.match()` for validating the `Origin` header, which only anchors at the start of the string. This allows attacker-controlled domains such as `trusted.example.com.evil.com` to pass validation against patterns intended to match `trusted.example.com`. The vulnerability affects multiple locations in the codebase, including CORS headers, WebSocket connections, referer validation, and login redirects, potentially enabling phishing attacks, arbitrary code execution, and unauthorized access to sensitive API responses.

Jun 3, 2026
HIGH8.1
CVE-2026-5422
Jupyter Server

A path traversal vulnerability exists in jupyter-server version 2.17.0 due to an incorrect root directory boundary check in the _get_os_path() function within jupyter_server/services/contents/fileio.py. The check uses startswith(root) without appending a trailing path separator, allowing sibling directories with names starting with the same prefix as root_dir to bypass the check. Additionally, the to_os_path() function in utils.py does not strip ".." from path parts, enabling traversal sequences to bypass the vulnerable check. This vulnerability can lead to unauthorized read/write access to files in sibling directories, potentially exposing sensitive data in shared hosting environments.

Jun 2, 2026
HIGH8.6
CVE-2026-42557
Jupyterlab

jupyterlab is an extensible environment for interactive and reproducible computing, based on the Jupyter Notebook Architecture. Prior to 4.5.7, JupyterLab's HTML sanitizer allowlists data-commandlinker-command and data-commandlinker-args on button elements, while CommandLinker listens for all click events on document.body and executes the named command without checking whether the element came from trusted JupyterLab UI. A notebook with a pre-saved HTML cell output containing a deceptive button can trigger arbitrary JupyterLab commands - including arbitrary code execution - on a single user click, without any code being submitted for execution by the user. This vulnerability is fixed in 4.5.7.

May 13, 2026
All Jupyter CVEs in 2026
Your next credential

Earn your free CTEM certification.

Learn to scope, prioritize, validate and mobilize fixes for CVEs like CVE-2026-35397 with a free CTEM certification.

Free to takePublicly verifiable

Beginner / Practitioner / Program Leader

Explore certifications