CVE Watchtower

← Back to CVE List

CVE-2026-102530NVD

Vulnerability Summary

Summary JupyterLab Desktop versions prior to `v4.6.2-1` inserted user-supplied remote server URLs into the application UI without sanitization or encoding - specifically in the server list of the Remote Server Select dialog and in the recent session tooltip in the Welcome view. This allowed a URL containing HTML to be interpreted as markup, enabling cross-site scripting (XSS) in the Welcome view renderer window. The Welcome view renderer had broad access to IPC methods via the `sendMessageToMain` preload bridge. An attacker who convinced a victim to connect to a malicious URL could use those IPC methods to inject arbitrary commands and achieve remote code execution with the privileges of the user running JupyterLab Desktop. This issue affects all platforms (macOS, Windows, Linux). > Note: CVE assignment pending - GitHub is experiencing a severe backlog in CVE assignment at the moment, please check back later if you need a CVE for this vulnerability. Impact An attacker who can convince a victim to enter a malicious URL into the JupyterLab Desktop "Connect to Remote Server" dialog can achieve full remote code execution on the victim's machine, with the same privileges as the user running the application. No further interaction is required after the URL is submitted. Users are affected if all of the following conditions are true: - they are running JupyterLab Desktop prior to v4.6.2-1; and - an attacker convinces them to connect to an attacker-controlled or attacker-crafted URL (for example via a phishing message, a shared configuration, or a malicious "connect to this server" instruction). Users who only ever connect to remote servers whose URLs they have independently verified, or who only use local sessions, have no exposure. Technical Details Three locations inserted external data into the DOM without encoding: the server list in `RemoteServerSelectDialog`, the recent session tooltip in `WelcomeView` (the primary PoC vector), and the news feed list in `WelcomeView`, where RSS feed values were a second independent sink. Because the Welcome view window stayed open in the background after a connection was initiated, XSS in that context had access to IPC methods via the `electronAPI` preload bridge - including `sendMessageToMain`, which accepted privileged commands such as `set-server-launch-args` and `restart-app`. Together these allowed an attacker to bridge from XSS in the renderer to arbitrary code execution on the host. Patches All three sinks are fixed in v4.6.2-1 by replacing `innerHTML` template literal interpolation with explicit DOM construction (`createElement`, `textContent`, `setAttribute`). The EJS server-side template was also hardened against script-tag breakout, and a `Content Security Policy` with `require-trusted-types-for 'script'` was added to the Welcome view as defence in depth. All users should upgrade to `v4.6.2-1`. Workarounds There are no complete workarounds. Users who cannot immediately upgrade should: - Only connect to remote Jupyter servers whose URLs have been obtained from a trusted source. - Treat any unsolicited instruction to connect to a specific remote server URL with suspicion. References - https://github.com/jupyterlab/jupyterlab-desktop/commit/f59fd4f61bc6a2ca89cf0d13dce5f60511eaef5d
Severity Level
CRITICAL(9.4)
Published Date
Jul 24, 2026
Last Modified
Jul 24, 2026
Exploitation Status
No confirmed exploitation yet
CVE Record Status
Reserved
This CVE ID is referenced in a public advisory, but the CVE Program has not published its official CVE Record yet. Full CVSS/CPE data from NVD will appear here once it does.
EPSS Score (30-Day)
Data Pending
Root Weakness (CWE)
The software does not neutralize user-controllable input before it is placed in output that is used as a web page.
The software constructs all or part of a code segment using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended syntax or behavior.
Refer to the official MITRE database for detailed architectural specifications regarding this weakness.
CVSS v4.0 Base Metrics — Score 9.4
Attack VectorNetwork
Attack ComplexityLow
Attack RequirementsNone
Privileges RequiredNone
User InteractionActive
Confidentiality (Vulnerable System)High
Integrity (Vulnerable System)High
Availability (Vulnerable System)High
Confidentiality (Subsequent System)High
Integrity (Subsequent System)High
Availability (Subsequent System)High

Affected & Patched Versions

Affected Versions
  • jupyterlab-desktop <= v4.2.5-1
Patched Versions
  • jupyterlab-desktop 4.6.2-1
🎁7-Day Free Trial — Try Pro or Team, no card required.
📧Email Delivery — Threat intel straight to your inbox.
♾️Unlimited Vendors — Track your entire stack.
🚨All New CVEs — Be the first to know.
📈EPSS Spike Alerts — Catch rising risk before it peaks.
🎯Custom EPSS/CVSS — Filter noise, focus on risk.
🛡️Exploit Intel — A 2nd confirmed-exploit signal beyond KEV.
🐙GitHub Issues — Auto-tracked, no duplicates.
📬Weekly Digest — One clean summary, not inbox spam.
🏷️Watchlist Groups — Tag alerts by team (Infra/AppSec/SOC).
💬Webhooks — Slack & Teams integration.
🔀Smart Routing — Critical alerts to one channel, rest to another.
🚫Ad-Free — Uninterrupted experience.
🎁7-Day Free Trial — Try Pro or Team, no card required.
📧Email Delivery — Threat intel straight to your inbox.
♾️Unlimited Vendors — Track your entire stack.
🚨All New CVEs — Be the first to know.
📈EPSS Spike Alerts — Catch rising risk before it peaks.
🎯Custom EPSS/CVSS — Filter noise, focus on risk.
🛡️Exploit Intel — A 2nd confirmed-exploit signal beyond KEV.
🐙GitHub Issues — Auto-tracked, no duplicates.
📬Weekly Digest — One clean summary, not inbox spam.
🏷️Watchlist Groups — Tag alerts by team (Infra/AppSec/SOC).
💬Webhooks — Slack & Teams integration.
🔀Smart Routing — Critical alerts to one channel, rest to another.
🚫Ad-Free — Uninterrupted experience.