CVE-2026-102904: JupyterLab PyPI Extension Manager command injection in uninstall

CVE-2026-102904 · Severity: medium · CVSS 5.4 · Published 2026-09-29

JupyterLab is an interactive computing environment used by researchers and data scientists. An authenticated user with access to the PyPI Extension Manager can supply pip command-line options during uninstall requests to read local files, fetch internal URLs, or create/corrupt files on the server. This allows attackers to exfiltrate sensitive data or manipulate server state, though code execution and denial of service are not possible through this vector.

Technologies: JupyterLab, jupyterlab (PyPI). Vendors: JupyterLab, PyPI.

Quick answers

Is CVE-2026-102904 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-102904 being exploited in the wild.
How severe is CVE-2026-102904?
Medium severity, with a CVSS score of 5.4, published 29 September 2026.
Which products and versions are affected?
JupyterLab 4.0.0 to 4.5.10 and 4.6.0 to 4.6.3; jupyterlab (PyPI) ECOSYSTEM:introduced=4.0.0,fixed=4.5.11,introduced=4.6.0,fixed=4.6.4, ECOSYSTEM:introduced=4.6.0,fixed=4.6.4.
Is there a fix for CVE-2026-102904?
Yes. jupyterlab (PyPI): upgrade to 4.6.4 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-102904 attacked?
It is attacked over the network, in a web application.
Am I affected by CVE-2026-102904?
Check whether you run JupyterLab or jupyterlab (PyPI) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • jupyterlab (PyPI): upgrade to 4.6.4 or later
    pip install "jupyterlab>=4.6.4"

Technical details

The vulnerability exists in the extension uninstall handler, which fails to validate extension names before passing them to the pip uninstall command. An authenticated attacker can inject pip options (such as --requirements or --log) to cause arbitrary file reads, internal network requests, or log file corruption. The attack requires the PyPI Extension Manager to be enabled and the attacker to have extension API access; kernels and terminals must be unavailable locally to prevent easier exploitation via other means.

Affected products

  • JupyterLab JupyterLab 4.0.0 to 4.5.10 and 4.6.0 to 4.6.3

Identifiers

  • CVE-2026-102904
  • GHSA-3325-v43h-43rv
  • PYSEC-2026-4055

Timeline

  • 2026-09-29: disclosed
  • 2026-09-21: patched: fixes released in versions 4.5.11 and 4.6.4

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.