CVE-2018-19351 json
Jupyter Notebook XSS via untrusted notebooks
published 2018-11-18 7 y ago modified 2026-06-17 4 mo ago also GHSA-49qr-xh3w-h436 , PYSEC-2018-17 , EUVD-2018-0104
- cvss
- 6.1
- version 3.0, NVD
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 1.5%
- EPSS 1.5% chance of exploitation in 30 days, percentile 74%
- public exploits
- 0
- none known
Summary
Jupyter Notebook before 5.7.1 allows XSS via an untrusted notebook because nbconvert responses are considered to have the same origin as the notebook server. In other words, nbconvert endpoints can execute JavaScript with access to the server API. In notebook/nbconvert/handlers.py, NbconvertFileHandler and NbconvertPostHandler do not set a Content Security Policy to prevent this.
Patch / fix
- pypi notebook 5.7.1
- jupyter notebook 5.7.1
- jupyter-notebook Debian 14, Debian 13, Debian 12 5.7.4-1
debian advisories DEBIAN-CVE-2018-19351
- jupyter-notebook Ubuntu 18.04 LTS 5.2.2-1ubuntu0.1
ubuntu advisories UBUNTU-CVE-2018-19351
Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- jupyter-notebook Arch Linux 5.7.2-1
arch linux advisories AVG-820
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-2018-19351 updated cvss 6.1
python-notebook: XSS via an untrusted notebook
-
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
Exploit prediction
1.51% chance of exploitation in the next 30 days, higher than 74% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| NVD | 3.0 | 6.1 | CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N |
| NVD | 2.0 | 4.3 | AV:N/AC:M/Au:N/C:N/I:P/A:N |
| GitHub | 3.0 | 6.1 | CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | notebook | <5.7.1 |
5.7.1 |
Classification
- Weakness
-
- CWE-79 Improper Neutralization of Input During Web Page Generation
References
-
github.com
/jupyter/notebook/commit/107a89fce5f413fb5728c1c5d2c7788e1fb17491
web, patch, third-party-advisory
- groups.google.com /forum/#%21topic/jupyter/hWzu2BSsplY
-
pypi.org
/project/notebook/#history
web, third-party-advisory, package
-
github.com
/jupyter/notebook/blob/master/docs/source/changelog.rst
web, release-notes
-
lists.debian.org
/debian-lts-announce/2020/11/msg00033.html
mailing-list, web
-
nvd.nist.gov
/vuln/detail/CVE-2018-19351
advisory
-
github.com
/jupyter/notebook
package
-
github.com
/pypa/advisory-database/tree/main/vulns/notebook/PYSEC-2018-17.yaml
web
-
groups.google.com
/forum/#!topic/jupyter/hWzu2BSsplY
web
-
github.com
/advisories/GHSA-49qr-xh3w-h436
advisory
Sources
- CVE List CVE-2018-19351
- GitHub Advisory GHSA-49qr-xh3w-h436
- NVD CVE-2018-19351
- OSV PYSEC-2018-17
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.