CVE-2026-102830 json
JupyterLab: Cross-site scripting (XSS) in JupyterLab via crafted language package (jupyterlab.json)
published last mo. modified last mo. also GHSA-3jqq-pw4j-pqcj , PYSEC-2026-4056 , PYSEC-2026-4059 , EUVD-2026-89337
- cvss
- 6.8
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.3%
- EPSS 0.3% chance of exploitation in 30 days, percentile 17%
- public exploits
- 0
- none known
Summary
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.
Patch / fix
- pypi jupyterlab 4.5.11, 4.6.4
- pypi jupyterlite-core 0.8.4
- python-jupyterlab openSUSE Tumbleweed 4.5.11-1.1
opensuse advisories openSUSE-SU-2026:11945-1
Is CVE-2026-102830 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerVendor 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-102830 updated cvss 6.8
jupyterlab: jupyterlite-core: JupyterLab: Arbitrary code execution via crafted language pack
-
Red Hat Migration Toolkit for Applications 8 mta/mta-solution-server-rhel9affected: workaround, no fix planned “There are no known mitigations available for this vulnerability at this time. Red Hat recommends applying the available security update once it is released.”
-
Red Hat OpenShift AI (RHOAI) rhoai/odh-feature-server-rhel9, rhoai/odh-th-torch-cpu-py312-rhel9, rhoai/odh-th-torch-cuda-py312-rhel9, rhoai/odh-th-torch-rocm-py312-rhel9, rhoai/odh-th06-cpu-torch210-py312-rhel9, rhoai/odh-th06-cpu-torch291-py312-rhel9, +14 moreaffected: workaround, no fix available “There are no known mitigations available for this vulnerability at this time. Red Hat recommends applying the available security update once it is released.”
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
- last mo.
Exploit prediction
0.26% chance of exploitation in the next 30 days, higher than 17% of all scored CVEs (FIRST EPSS, 2026-11-09).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 6.8 | CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N |
| OSV | 3.1 | 6.8 | CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N |
| GitHub | 3.1 | 6.8 | CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | jupyterlab | >=4.6.0, <4.6.4 >=3.0.0, <4.5.11 |
4.6.4 4.5.11 |
| pypi | jupyterlite-core | <0.8.4 |
0.8.4 |
Affected products
- jupyterlab jupyterlab
- jupyterlab jupyterlite-core
Classification
References
-
github.com
/jupyterlab/jupyterlab/commit/985a3223cd77fd4f991cd90066342a90711d70f6
web
-
github.com
/jupyterlab/jupyterlab/commit/de324ae91346c713c4f5e5485f97b6e914e0f774
web
-
github.com
/jupyterlab/jupyterlab/commit/f9de43dc565a1118120d466117f877a189a4ce90
web
-
github.com
/jupyterlab/jupyterlab/security/advisories/GHSA-3jqq-pw4j-pqcj
web
-
github.com
/jupyterlab/jupyterlab/releases/tag/v4.5.11
web
-
github.com
/jupyterlab/jupyterlab/releases/tag/v4.6.4
web
-
nvd.nist.gov
/vuln/detail/CVE-2026-102830
advisory
-
github.com
/jupyterlab/jupyterlab
package
-
pypi.org
/project/jupyterlite-core
package
-
github.com
/advisories/GHSA-3jqq-pw4j-pqcj
advisory
-
pypi.org
/project/jupyterlab
package
Sources
- CVE List CVE-2026-102830
- GitHub Advisory GHSA-3jqq-pw4j-pqcj
- NVD CVE-2026-102830
- OSV PYSEC-2026-4059
- OSV PYSEC-2026-4056
Fencer Intel 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.