CVE-2024-22420 json
Stored cross site scripting in Markdown Preview in JupyterLab
published 2024-01-19 2 y ago modified 2026-09-10 1 mo ago also BIT-jupyter-base-notebook-2024-22420 , BIT-jupyter-notebook-2024-22420 , BIT-jupyterlab-2024-22420 , EUVD-2024-0248 , GHSA-4m77-cmpx-vjc4 , PYSEC-2026-1707 , PYSEC-2026-2535
- cvss
- 6.5
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.6%
- EPSS 0.6% chance of exploitation in 30 days, percentile 47%
- public exploits
- 0
- none known
Summary
JupyterLab is an extensible environment for interactive and reproducible computing, based on the Jupyter Notebook and Architecture. This vulnerability depends on user interaction by opening a malicious Markdown file using JupyterLab preview feature. A malicious user can access any data that the attacked user has access to as well as perform arbitrary requests acting as the attacked user. JupyterLab version 4.0.11 has been patched. Users are advised to upgrade. Users unable to upgrade should disable the table of contents extension.
Patch / fix
- pypi jupyterlab 4.0.11
- pypi notebook 7.0.7
- bitnami jupyter-notebook 7.0.7
- bitnami jupyterlab 4.2.4
- jupyter jupyterlab 4.0.11
- jupyter notebook 7.0.7
- jupyterlab Debian 14, Debian 13 4.0.11+ds1-1
debian advisories DEBIAN-CVE-2024-22420
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-2024-22420 updated cvss 6.5
jupyterlab:
-
Red Hat All currently supported Red Hat productsnot 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
- partial
- Assessed
- 18 mo ago
Exploit prediction
0.57% chance of exploitation in the next 30 days, higher than 47% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 6.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N |
| GitHub | 3.1 | 6.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N |
| NVD | 3.1 | 6.1 | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N |
| OSV | 3.1 | 6.1 | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N |
| OSV | 3.1 | 6.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | jupyterlab | >=4.0.0, <4.0.11 |
4.0.11 |
| pypi | notebook | >=7.0.0, <7.0.7 |
7.0.7 |
| bitnami | jupyter-base-notebook | >=7.0.0 |
no fix listed |
| bitnami | jupyter-notebook | >=7.0.0, <7.0.7 |
7.0.7 |
| bitnami | jupyterlab | >=4.0.0, <4.2.4 |
4.2.4 |
Affected products
- jupyterlab jupyterlab
Classification
- Weakness
-
- CWE-79 Improper Neutralization of Input During Web Page Generation
References
-
github.com
/jupyterlab/jupyterlab/commit/e1b3aabab603878e46add445a3114e838411d2df
web, patch
-
github.com
/jupyterlab/jupyterlab/commit/dda0033cd49449572d077bbecd33b18d8d05f48a
web
-
github.com
/jupyterlab/jupyterlab/security/advisories/GHSA-4m77-cmpx-vjc4
web, vendor-advisory, advisory
-
lists.fedoraproject.org
/archives/list/package-announce@lists.fedoraproject.org/message/UQJKNRDRFMKGVRIYNNN6CKMNJDNYWO2H/
mailing-list, third-party-advisory, advisory
-
nvd.nist.gov
/vuln/detail/CVE-2024-22420
advisory, web
-
github.com
/jupyterlab/jupyterlab
package
-
lists.fedoraproject.org
/archives/list/package-announce@lists.fedoraproject.org/message/UQJKNRDRFMKGVRIYNNN6CKMNJDNYWO2H
web
-
pypi.org
/project/notebook
package
-
github.com
/advisories/GHSA-4m77-cmpx-vjc4
advisory
-
pypi.org
/project/jupyterlab
package
Sources
- CVE List CVE-2024-22420
- GitHub Advisory GHSA-4m77-cmpx-vjc4
- NVD CVE-2024-22420
- OSV BIT-jupyter-base-notebook-2024-22420
- OSV BIT-jupyter-notebook-2024-22420
- OSV BIT-jupyterlab-2024-22420
- OSV PYSEC-2026-1707
- OSV PYSEC-2026-2535
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.