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.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| jupyter-server | jupyter_server | < 2.20 | — |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | jupyter-server | 2.20.0-1 | — |
| Debian 13 | jupyter-server | No fix yet | — |
| Debian 12 | jupyter-server | No fix yet | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 26.10 | jupyter-server | No fix yet | — |
| Ubuntu 26.04 LTS | jupyter-server | No fix yet | — |
| Ubuntu 25.10 | jupyter-server | No fix yet | — |
| Ubuntu 24.04 LTS | jupyter-server | No fix yet | — |
| Ubuntu 22.04 LTS | jupyter-server | No fix yet | — |
openSUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| openSUSE Tumbleweed | python-jupyter-server | 2.20.0-1.1 | openSUSE-SU-2026:11159-1 |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| PyPI | jupyter-server | < 2.20.0 | 2.20.0 | GHSA-fcw5-x6j4-ccmp |
Advisories 1
- openSUSE-SU-2026:11159-1 python311-jupyter-server-2.20.0-1.1 on GA media SUSE / openSUSE Security Updates · Jul 1, 2026