CVE-2026-40171 json
Jupyter Notebook and JupyterLab token theft via stored XSS in help command linker
published 2026-04-30 6 mo ago modified 2026-10-26 13 d ago also BIT-jupyter-base-notebook-2026-40171 , BIT-jupyter-notebook-2026-40171 , BIT-jupyterlab-2026-40171 , EUVD-2026-28153 , GHSA-rch3-82jr-f9w9 , PYSEC-2026-2538 , PYSEC-2026-2682
- cvss
- 8.4
- version 4.0, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.5%
- EPSS 0.5% chance of exploitation in 30 days, percentile 41%
- public exploits
- 0
- none known
Summary
In Jupyter Notebook versions 7.0.0 through 7.5.5, JupyterLab versions 4.5.6 and earlier, and the corresponding @jupyter-notebook/help-extension and @jupyterlab/help-extension packages before 7.5.6 and 4.5.7, a stored cross-site scripting issue in the help command linker can be chained with attacker-controlled notebook content to steal authentication tokens with a single click.
An attacker can craft a malicious notebook file containing elements that appear indistinguishable from legitimate controls and trigger execution when a user interacts with them. Successful exploitation allows theft of the user's authentication token and complete takeover of the Jupyter session through the REST API, including reading files, creating or modifying files, accessing kernels to execute arbitrary code, and creating terminals for shell access. This issue has been fixed in Notebook 7.5.6, JupyterLab 4.5.7, @jupyter-notebook/help-extension 7.5.6, and @jupyterlab/help-extension 4.5.7. As a workaround, disable the affected help extensions or set allowCommandLinker to false in the sanitizer configuration.
Patch / fix
- npm @jupyter-notebook/help-extension 7.5.6
- pypi notebook 7.5.6
- pypi jupyterlab 4.5.7
- npm @jupyterlab/help-extension 4.5.7
- bitnami jupyter-base-notebook 7.5.6
- bitnami jupyter-notebook 7.5.6
- bitnami jupyterlab 4.5.7
- jupyter notebook 7.5.6
- jupyter jupyterlab 4.5.7
- jupyter jupyterlab/help-extension 4.5.7
- jupyterlab help-extension 4.5.7
- jupyterlab jupyterlab/help-extension 4.5.7
- jupyter-notebook help-extension 7.5.6
- jupyter jupyter-notebook/help-extension 7.5.6
- jupyterlab Debian 14 4.4.10+ds1+~3.1.0+~0.16.6+~cs1.4.4-3
- jupyter-notebook Debian 14 7.4.7-3
debian advisories DEBIAN-CVE-2026-40171
- python-jupyterlab openSUSE Tumbleweed 4.5.7-1.1
- python-notebook openSUSE Tumbleweed 7.5.6-1.1
opensuse advisories openSUSE-SU-2026:10748-1openSUSE-SU-2026:10749-1
- jupyter-notebook Alpine 3.24 7.5.6-r0
alpine advisories ALPINE-CVE-2026-40171
Alpine secdb © Alpine Linux, from https://secdb.alpinelinux.org via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-40171 updated cvss 8.8
Jupyter Notebook: JupyterLab: @jupyter-notebook/help-extension: @jupyterlab/help-extension: Jupyter Notebook and JupyterLab: Session takeover via stored cross-site scripting
-
Red Hat Migration Toolkit for Applications 8.2 mta/mta-solution-server-rhel9 1784109883fixed: vendor fix RHSA-2026:43038
-
Red Hat OpenShift AI 2.25 rhoai/odh-workbench-jupyter-minimal-cpu-py312-rhel9 1788185839, rhoai/odh-workbench-jupyter-minimal-cuda-py312-rhel9 1788185798, rhoai/odh-workbench-jupyter-minimal-rocm-py312-rhel9 1788185733, rhoai/odh-workbench-jupyter-pytorch-cuda-py312-rhel9 1788185436, rhoai/odh-workbench-jupyter-pytorch-rocm-py312-rhel9 1788185848, rhoai/odh-workbench-jupyter-trustyai-cpu-py312-rhel9 1788185899, +4 morefixed: vendor fix RHSA-2026:65126
-
Red Hat OpenShift AI 3.4 rhoai/odh-th06-cpu-torch210-py312-rhel9 1787076778, rhoai/odh-th06-rocm64-torch291-py312-rhel9 1787076481, rhoai/odh-th06-cuda130-torch210-py312-rhel9 1787077779, rhoai/odh-workbench-jupyter-minimal-cpu-py312-rhel9 1787073913, rhoai/odh-workbench-jupyter-minimal-cuda-py312-rhel9 1787074078, rhoai/odh-workbench-jupyter-minimal-rocm-py312-rhel9 1787073929, +6 morefixed: vendor fix RHSA-2026:60520
-
Red Hat Migration Toolkit for Applications 8.2 mta/mta-ui-rhel9 1783962515, mta/mta-cli-rhel9 1784211378, mta/mta-hub-rhel9 1784059743, mta/mta-rhel9-operator 1784219586, mta/mta-operator-bundle 1784220119, mta/mta-analyzer-addon-rhel9 1784163267, +7 morenot affected: vulnerable code not present
-
Red Hat OpenShift AI (RHOAI) rhoai/odh-th06-cpu-torch291-py312-rhel9, rhoai/odh-th06-cuda130-torch291-py312-rhel9not affected: component not present
-
Red Hat OpenShift AI 2.25 rhoai/odh-rhel9-operator 1788331391, rhoai/odh-vllm-cpu-rhel9 1786712073, rhoai/odh-dashboard-rhel9 1788312226, rhoai/odh-modelmesh-rhel9 1788319539, rhoai/odh-operator-bundle 1788332816, rhoai/odh-vllm-cuda-rhel9 1786710989, +61 more Red Hat OpenShift AI 3.4 rhoai/odh-cli-rhel9 1787330837, rhoai/rhai-cli-rhel9 1787330837, rhoai/odh-automl-rhel9 1786612415, rhoai/odh-mlflow-rhel9 1787226790, rhoai/odh-autorag-rhel9 1786612637, rhoai/odh-trainer-rhel9 1787089049, +88 morenot affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- total
- Assessed
- 6 mo ago
Exploit prediction
0.48% chance of exploitation in the next 30 days, higher than 41% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 8.4 | CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N |
| CNA | 4.0 | 8.4 | CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:A/VC:H/VI:H/VA:H/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 |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| npm | @jupyter-notebook/help-extension | >=7.0.0, <7.5.6 |
7.5.6 |
| pypi | notebook | >=7.0.0, <7.5.6 |
7.5.6 |
| pypi | jupyterlab | <4.5.7 |
4.5.7 |
| npm | @jupyterlab/help-extension | <4.5.7 |
4.5.7 |
| bitnami | jupyter-base-notebook | >=7.0.0, <7.5.6 |
7.5.6 |
| bitnami | jupyter-notebook | >=7.0.0, <7.5.6 |
7.5.6 |
| bitnami | jupyterlab | <4.5.7 |
4.5.7 |
Affected products
- jupyter notebook
- jupyterlab help-extension
- jupyterlab jupyterlab
- jupyter-notebook help-extension
Classification
References
-
github.com
/jupyter/notebook/security/advisories/GHSA-rch3-82jr-f9w9
web
-
nvd.nist.gov
/vuln/detail/CVE-2026-40171
advisory, web
-
github.com
/jupyter/notebook
package
-
jupyterlab.readthedocs.io
/en/latest/user/commands.html#commands-in-markdown-output-and-files
web
-
pypi.org
/project/jupyterlab
package
-
github.com
/advisories/GHSA-rch3-82jr-f9w9
advisory
-
pypi.org
/project/notebook
package
Sources
- CVE List CVE-2026-40171
- GitHub Advisory GHSA-rch3-82jr-f9w9
- NVD CVE-2026-40171
- OSV BIT-jupyter-base-notebook-2026-40171
- OSV BIT-jupyter-notebook-2026-40171
- OSV BIT-jupyterlab-2026-40171
- OSV PYSEC-2026-2538
- OSV PYSEC-2026-2682
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.