CVE-2026-102904 json
JupyterLab: Argument injection in JupyterLab extension uninstall exposes server-readable files and internal URLs
published 2026-09-29 40 d ago modified 2026-10-06 33 d ago also BIT-jupyterlab-2026-102904 , EUVD-2026-89459 , GHSA-3325-v43h-43rv , PYSEC-2026-4055
- cvss
- 5.4
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.2%
- EPSS 0.2% chance of exploitation in 30 days, percentile 10%
- public exploits
- 0
- none known
Summary
JupyterLab is an extensible environment for interactive and reproducible computing, based on the Jupyter Notebook Architecture. From JupyterLab 4.0.0 until 4.5.11 and 4.6.4, the PyPI Extension Manager uninstall request reaches ExtensionHandler.post, which validates extension names for installation but passes uninstall names to PyPIExtensionManager.uninstall and python -m pip uninstall without rejecting option-like values. The security impact requires that the PyPI Extension Manager is enabled, the account can call the extension API, and kernels and terminals are disabled or delegated to remote hosts; otherwise the user can already read files and make outbound requests directly. An authenticated user with extension API access can supply a pip requirements option to make the server read a local file or fetch an internal URL, and reflected parse errors can return the first unparsable line or response content. A pip log option can also create or corrupt a chosen path with pip-generated log text, but the requester cannot select an arbitrary disclosed line or arbitrary file content, and the injection does not add code execution or availability impact beyond ordinary package removal. This issue is fixed in JupyterLab 4.5.11 and 4.6.4.
Patch / fix
- pypi jupyterlab 4.5.11, 4.6.4
- bitnami jupyterlab 4.5.11, 4.6.4
- jupyter jupyterlab 4.5.11, 4.6.4
- python-jupyterlab openSUSE Tumbleweed 4.5.11-1.1
opensuse advisories openSUSE-SU-2026:11945-1
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-2026-102904 updated cvss 5.4
jupyterlab: JupyterLab: Information disclosure via extension uninstallation argument injection
-
Red Hat Migration Toolkit for Applications 8 mta/mta-solution-server-rhel9affected: workaround, no fix planned “Out of support scope”
-
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 “Fix deferred”
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
- 39 d ago
Exploit prediction
0.21% chance of exploitation in the next 30 days, higher than 10% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 5.4 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N |
| GitHub | 3.1 | 5.4 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N |
| OSV | 3.1 | 5.4 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | jupyterlab | >=4.6.0, <4.6.4 >=4.0.0, <4.5.11 |
4.6.4 4.5.11 |
| bitnami | jupyterlab | >=4.0.0, <4.5.11 >=4.6.0, <4.6.4 |
4.5.11 4.6.4 |
Affected products
- jupyterlab jupyterlab
Classification
References
-
github.com
/jupyterlab/jupyterlab/commit/a274a8276b9185d03efd4c3c20713d3137ac49e6
web
-
github.com
/jupyterlab/jupyterlab/commit/e277bc958e737130ac47b6c5078d08b29298828f
web
-
github.com
/jupyterlab/jupyterlab/commit/9e1951e57da499ca66ef5e0caf68e71ad2e3d1a5
web
-
github.com
/jupyterlab/jupyterlab/security/advisories/GHSA-3325-v43h-43rv
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-102904
advisory, web
-
github.com
/jupyterlab/jupyterlab
package
-
pypi.org
/project/jupyterlab
package
-
github.com
/advisories/GHSA-3325-v43h-43rv
advisory
Sources
- CVE List CVE-2026-102904
- GitHub Advisory GHSA-3325-v43h-43rv
- NVD CVE-2026-102904
- OSV BIT-jupyterlab-2026-102904
- OSV PYSEC-2026-4055
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.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.