CVE-2026-102830 JupyterLab: Cross-site scripting (XSS) in JupyterLab via crafted language package (jupyterlab.json)
Attackers can execute arbitrary JavaScript in JupyterLab via malicious language packs, potentially accessing server APIs to read or modify files.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- A user has to click or open something
- Fix
- Available
What is CVE-2026-102830?
CVE-2026-102830 is a medium-severity cross-site scripting vulnerability in jupyterlab, published on 29 Sep 2026. An attacker can exploit it over the internet without logging in, and only if a user opens a file or follows a link.
Official description
JupyterLab is an extensible environment for interactive and reproducible computing, based on the Jupyter Notebook Architecture. From JupyterLab 3.0.0 until 4.5.11 and 4.6.4, and in JupyterLite Core 0.8.3 and earlier, the Plural-Forms header in a selected third-party language pack can append JavaScript after a valid plural rule because prefix-only regular-expression validation accepts a matching prefix without requiring the entire header to match. JupyterLab passes the accepted expression to new Function, so loading the catalogue and translating a plural string executes the appended code in the authenticated JupyterLab origin. Where Jupyter Server kernels, terminals, and APIs are exposed, the code can use authenticated server APIs to read or modify files and run code. Impact is much more limited in JupyterLite because it typically lacks most exposed Jupyter Server surfaces. The default English locale is unaffected because it does not load a translation catalogue. This issue is fixed in JupyterLab 4.5.11 and 4.6.4 and JupyterLite Core 0.8.4.
Which versions are affected by CVE-2026-102830?
8 open source packages ship an affected version, including jupyterlab and jupyterlite-core.
| Package | Affected | Fixed in |
|---|---|---|
jupyterlab PyPI | From 3.0.0 | 4.5.11, 4.6.4 |
jupyterlab PyPI | From 3.0.0 | 4.5.11 |
jupyterlab PyPI | From 3.0.0 | 4.5.11 |
jupyterlab PyPI | From 4.6.0 | 4.6.4 |
jupyterlab PyPI | From 4.6.0 | 4.6.4 |
jupyterlite-core PyPI | All versions | 0.8.4 |
2 more packages
jupyterlite-core PyPI | All versions | 0.8.4 |
jupyterlite-core PyPI | All versions | 0.8.4 |
How do I fix CVE-2026-102830?
Upgrade jupyterlab to a fixed version for your release line: 4.5.11 or 4.6.4.
Escape output for the context it lands in and set a strict Content Security Policy. Upgrading the affected component is the real fix. More about Cross-site scripting.
Is CVE-2026-102830 being exploited?
There is no known exploitation of CVE-2026-102830 in the wild and no public exploit code.
Sources
Also known as DEBIAN-CVE-2026-102830, GHSA-3jqq-pw4j-pqcj, MINI-fcm2-x855-q9v4, MINI-prqr-h9x4-4f6w, PYSEC-2026-4056, PYSEC-2026-4059 and 1 more.