CVE-2026-102831

JupyterLab: Cross-site scripting (XSS) in JupyterLab via notebook cells pasted from the system clipboard

Published Sep 29, 2026 CVSS 3.1 · 8.1 High EPSS < 1% KEV · Not listed
Description
JupyterLab is an extensible environment for interactive and reproducible computing, based on the Jupyter Notebook Architecture. From JupyterLab 4.5.0 until 4.5.11 and 4.6.4, from Notebook 7.5.0 until 7.6.3, and from JupyterLite Core 0.7.0 until 0.8.4, the system clipboard cell-paste path accepts attacker-controlled cell JSON without clearing metadata.trusted. When useSystemClipboardForCells is active and pasteCodeCellsWithoutOutput is disabled, a pasted code cell can mark HTML output as trusted, bypass output sanitization, and execute script in the authenticated JupyterLab origin without executing the cell. Markdown and raw cells are not affected because their output is sanitized. This issue is fixed in JupyterLab 4.5.11 and 4.6.4, Notebook 7.6.3, and JupyterLite Core 0.8.4.

Analysis

AI-generated

Technical impact

The clipboard cell‑paste mechanism in JupyterLab, JupyterLite Core, and the Jupyter Notebook architecture accepts attacker‑controlled JSON objects without clearing the trusted metadata flag. When the useSystemClipboardForCells setting is enabled and pasteCodeCellsWithoutOutput is disabled, a code cell can tag its HTML output as trusted. Trusted output bypasses Jupyter’s sanitization step, enabling embedded <script> payloads to run within the user’s browser without the cell executing. This results in a client‑side cross‑site scripting flaw that can persist in a trusted context, potentially exposing credentials or enabling further server‑side exploitation. The flaw does not affect Markdown or raw cells because their output is always sanitized. The vulnerability is limited to cells pasted from the system clipboard; it does not require network access beyond the authenticated JupyterLab origin.

Affected Systems

The flaw affects JupyterLab versions 4.5.0 through 4.5.11 and 4.6.0 through 4.6.4, the Jupyter Notebook versions 7.5.0 through 7.6.3, and JupyterLite Core versions 0.7.0 through 0.8.4. All products are listed under the jupyterlab:jupyterlab, jupyterlab:jupyterlite-core, and jupyterlab:notebook CNAs.

Risk and Exploitability

The CVSS score of 8.1 indicates a high severity risk. EPSS information is not available, but the vulnerability is not in the CISA KEV catalog. Attackers who can inject malicious clipboard content can trigger the flaw; this typically requires local user interaction or an exploited user session. Once a trusted HTML payload is pasted, scripts execute in the authenticated origin, yielding full client‑side privileges for the user. Because the attack does not directly require network intrusion, its probability hinges on user behavior or compromised local software.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade to JupyterLab 4.5.11 or 4.6.4, Notebook 7.6.3, or JupyterLite Core 0.8.4, which remove the flaw by clearing the trusted metadata during paste.
  • If an immediate patch is unavailable, disable the useSystemClipboardForCells preference or enable pasteCodeCellsWithoutOutput so that pasted code cells cannot mark output as trusted.
  • Configure a Content Security Policy (CSP) in the JupyterLab application to block the execution of inline scripts, providing a mitigation layer even if the vulnerability is not yet patched.

Generated by OpenCVE AI on September 29, 2026 at 22:32 UTC.

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Github GHSA Github GHSA GHSA-6966-vjj6-99xv JupyterLab: Cross-site scripting (XSS) in JupyterLab via notebook cells pasted from the system clipboard
History
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}

Type Values Removed Values Added
First Time appeared Jupyter
Jupyter jupyter Core
Jupyter jupyterlab
Jupyter notebook
Vendors & Products Jupyter
Jupyter jupyter Core
Jupyter jupyterlab
Jupyter notebook
Type Values Removed Values Added
Description JupyterLab is an extensible environment for interactive and reproducible computing, based on the Jupyter Notebook Architecture. From JupyterLab 4.5.0 until 4.5.11 and 4.6.4, from Notebook 7.5.0 until 7.6.3, and from JupyterLite Core 0.7.0 until 0.8.4, the system clipboard cell-paste path accepts attacker-controlled cell JSON without clearing metadata.trusted. When useSystemClipboardForCells is active and pasteCodeCellsWithoutOutput is disabled, a pasted code cell can mark HTML output as trusted, bypass output sanitization, and execute script in the authenticated JupyterLab origin without executing the cell. Markdown and raw cells are not affected because their output is sanitized. This issue is fixed in JupyterLab 4.5.11 and 4.6.4, Notebook 7.6.3, and JupyterLite Core 0.8.4.
Title JupyterLab: Cross-site scripting (XSS) in JupyterLab via notebook cells pasted from the system clipboard
Weaknesses CWE-345
CWE-79
References
Metrics cvssV3_1

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

Weaknesses
  • CWE-345

    Insufficient Verification of Data Authenticity

  • CWE-79

    Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
Oct 2, 2026, 12:22 PM
Reserved
Sep 29, 2026, 5:25 PM
Status
Awaiting Analysis
Published
Sep 29, 2026, 7:17 PM
Modified
Oct 2, 2026, 1:17 PM
Severity
Important
Public date
Sep 29, 2026, 6:58 PM