CVE-2026-44727

Jupyter Server: Stored XSS in `NbconvertFileHandler` / `NbconvertPostHandler` via missing `sandbox` CSP

Published Jun 22, 2026 CVSS 4.0 · 9.3 Critical EPSS < 1% KEV · Not listed
Description
Jupyter Server is the backend for Jupyter web applications. Prior to 2.20, the nbconvert HTTP handlers in jupyter_server render user-authored notebook HTML under the Jupyter origin without a sandbox directive in their Content-Security-Policy. Combined with nbconvert.HTMLExporter's default non-sanitizing behavior, a notebook carrying an HTML payload in a display_data output triggers stored XSS with cookie access, full /api/* authority, and kernel RCE. This vulnerability is fixed in 2.20.

Analysis

AI-generated

Technical impact

The vulnerability arises from missing a sandbox directive in the Content‑Security‑Policy header of the nbconvert HTTP handlers in Jupyter Server. When the nbconvert.HTMLExporter renders notebook HTML without sanitizing user‑provided content, malicious HTML in a display_data output is stored in the notebook file. A rendered page that includes this payload triggers stored XSS and grants the attacker access to the user’s session cookie, full /api/* authority, and ultimately the ability to execute code in the kernel. This is a classic reflected XSS that has been promoted to a stored form with a severe impact, classified as CWE‑79 (Cross‑Site Scripting) and CWE‑1021 (Content‑Security‑Policy directive missing).

Affected Systems

The affected product is Jupyter Server (jupyter_server). All releases older than 2.20 are vulnerable. The nbconvertFileHandler and nbconvertPostHandler endpoints are the specific entry points that may serve malicious notebook content.

Risk and Exploitability

The CVSS score of 9.3 places this issue in the critical range. EPSS is not available, so the current exploitation likelihood cannot be quantified, but the vulnerability is listed as not included in CISA KEV, indicating it has not yet triggered widespread attacks. The attack requires an attacker to supply a notebook containing malicious HTML and then have that notebook rendered in the user’s browser. Once the payload runs, the attacker gains full API access and kernel execution privileges. The possibility to retrieve the cookie and run arbitrary code means that exploitation could be done in a single step once the payload is delivered, making the threat significant for any environment that allows untrusted notebook uploads.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade jupyter_server to version 2.20 or later.
  • Restrict nbconvert HTML rendering to authenticated users or disable it for untrusted notebooks.
  • Add a sandbox directive to the Content‑Security‑Policy header for nbconvert responses or enforce it through server configuration.

Generated by OpenCVE AI on June 22, 2026 at 23:31 UTC.

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Github GHSA Github GHSA GHSA-fcw5-x6j4-ccmp Jupyter Server: Stored XSS in `NbconvertFileHandler` / `NbconvertPostHandler` via missing `sandbox` CSP
History
Type Values Removed Values Added
References
Metrics threat_severity

None

cvssV3_1

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

threat_severity

Important

Type Values Removed Values Added
First Time appeared Jupyter
Jupyter jupyter Server
Vendors & Products Jupyter
Jupyter jupyter Server
Type Values Removed Values Added
Metrics ssvc

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

Type Values Removed Values Added
Description Jupyter Server is the backend for Jupyter web applications. Prior to 2.20, the nbconvert HTTP handlers in jupyter_server render user-authored notebook HTML under the Jupyter origin without a sandbox directive in their Content-Security-Policy. Combined with nbconvert.HTMLExporter's default non-sanitizing behavior, a notebook carrying an HTML payload in a display_data output triggers stored XSS with cookie access, full /api/* authority, and kernel RCE. This vulnerability is fixed in 2.20.
Title Jupyter Server: Stored XSS in `NbconvertFileHandler` / `NbconvertPostHandler` via missing `sandbox` CSP
Weaknesses CWE-1021
CWE-79
References
Metrics cvssV4_0

{'score': 9.3, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:A/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H'}

Weaknesses
  • CWE-1021

    Improper Restriction of Rendered UI Layers or Frames

  • CWE-79

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

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
Aug 28, 2026, 12:04 PM
Reserved
May 7, 2026, 6:04 PM
Status
Modified
Published
Jun 22, 2026, 9:16 PM
Modified
Oct 25, 2026, 11:10 PM
Severity
Important
Public date
Jun 22, 2026, 7:56 PM