Description
JupyterLab Desktop is the cross-platform desktop application for JupyterLab. Prior to 4.6.2-1, JupyterLab Desktop exposed getServerInfo to the renderer without confirming that the current page still had the local Jupyter server origin. In a local managed session using JupyterLab before 4.4.8, an attacker can place a crafted MathJax link in an untrusted notebook. If a victim opens the notebook and clicks the link, the existing renderer navigates to an attacker-controlled site while retaining access to the preload bridge. The site can call getServerInfo to obtain the local server URL and authentication token, then use the Jupyter REST API to create and trust a notebook that executes arbitrary code as the victim. Users whose environment already uses JupyterLab 4.4.8 or later are unaffected because the corrected link handling breaks the first step of the chain. This vulnerability is fixed in 4.6.2-1.
Published: 2026-11-06
Score: 9.6 Critical
EPSS: n/a
KEV: No
Impact: Remote Code Execution
Action: Immediate Patch
AI Analysis

Impact

JupyterLab Desktop stores a renderer that can access server information through an exposed getServerInfo interface. Before version 4.6.2‑1, the interface was sent to the renderer without confirming that the original page’s origin matched the local Jupyter server origin. An attacker can embed a malicious MathJax link into an untrusted notebook. When a user opens that notebook and follows the link, the renderer navigates to the attacker’s site while the preload bridge remains active. From there the attacker can retrieve the local server URL and authentication token via getServerInfo and then use the Jupyter REST API to create or trust a notebook that runs arbitrary code as the user. The flaw thus enables remote code execution and full compromise of the victim’s environment.

Affected Systems

Affected systems are installations of JupyterLab Desktop older than 4.6.2‑1 that employ a local managed session with JupyterLab 4.4.8 or earlier. A notebook that is not pre‑trusted and contains a crafted MathJax link can trigger the exploit. The vulnerability does not apply to users running JupyterLab Desktop 4.6.2‑1 or later, and the fix in 4.4.8 onwards already sanitizes link handling, making earlier sessions safe once upgraded.

Risk and Exploitability

The CVSS score of 9.6 places this vulnerability in the critical range, and the absence of an EPSS score means there is no publicly documented exploitation probability yet. The issue is not listed in CISA’s KEV catalog. Exploitation requires a user to open a manipulated notebook and click a malicious link, a scenario that can be witnessed in collaborative or shared notebook environments. Once the attacker obtains the token, they can execute arbitrary code with the victim’s privileges, potentially leading to full system compromise. Although passive exploitation is unlikely, the high impact and local-to-remote escalation path make this a priority risk for any environment that allows untrusted notebooks.

Generated by OpenCVE AI on November 6, 2026 at 21:35 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade JupyterLab Desktop to version 4.6.2‑1 or later.
  • If an upgrade cannot be performed immediately, avoid opening notebooks that contain external MathJax links and remove or disable link elements in untrusted notebooks.
  • Implement an origin check before exposing getServerInfo or configure the application to reject mismatched origins to mitigate CWE‑601.
  • As a temporary measure, block outgoing connections from the renderer to non‑trusted domains until a patch is applied.

Generated by OpenCVE AI on November 6, 2026 at 21:35 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 06 Nov 2026 22:00:00 +0000

Type Values Removed Values Added
First Time appeared Jupyter
Jupyter jupyterlab-desktop
Vendors & Products Jupyter
Jupyter jupyterlab-desktop

Fri, 06 Nov 2026 20:45:00 +0000

Type Values Removed Values Added
Description JupyterLab Desktop is the cross-platform desktop application for JupyterLab. Prior to 4.6.2-1, JupyterLab Desktop exposed getServerInfo to the renderer without confirming that the current page still had the local Jupyter server origin. In a local managed session using JupyterLab before 4.4.8, an attacker can place a crafted MathJax link in an untrusted notebook. If a victim opens the notebook and clicks the link, the existing renderer navigates to an attacker-controlled site while retaining access to the preload bridge. The site can call getServerInfo to obtain the local server URL and authentication token, then use the Jupyter REST API to create and trust a notebook that executes arbitrary code as the victim. Users whose environment already uses JupyterLab 4.4.8 or later are unaffected because the corrected link handling breaks the first step of the chain. This vulnerability is fixed in 4.6.2-1.
Title JupyterLab Desktop: One-Click Jupyter Server Token Leak leading to Remote Code Execution
Weaknesses CWE-601
References
Metrics cvssV3_1

{'score': 9.6, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H'}


Subscriptions

Jupyter Jupyterlab-desktop
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-11-06T20:30:53.266Z

Reserved: 2026-09-04T19:29:21.058Z

Link: CVE-2026-86044

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-11-06T21:17:12.297

Modified: 2026-11-06T21:17:12.297

Link: CVE-2026-86044

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-11-06T21:45:10Z

Weaknesses
  • CWE-601

    URL Redirection to Untrusted Site ('Open Redirect')