CVE-2026-102904: JupyterLab Extension Uninstall Argument Injection Vulnerability
Summary
CVE-2026-102904: JupyterLab's PyPI extension manager runs python -m pip uninstall with the extension name taken from the request body. Affects jupyterlab across 2 version ranges.
>= 4.0.0, < 4.5.11
>= 4.6.0, < 4.6.4
Fixed in 4.5.11 or 4.6.4, depending on the release line you run. How to fix ↓
Also tracked for
- jupyterlab · Bitnami
The same CVE-2026-102904 is tracked separately for each ecosystem and vendor. Its fix information is the same; the package and affected versions differ.
Check if this vulnerability affects your application
Upload a manifest or SBOM and we'll show whether you're affected, plus every other risky package in the same scan.
No signup required · Results in about 60 seconds
Background
JupyterLab is an open-source web-based interactive development environment for Jupyter notebooks, code, and data. It allows users to create and share documents that contain live code, equations, visualizations, and narrative text. The package features an extension manager that enables users to install and manage extensions from the Python Package Index (PyPI). However, a vulnerability exists in the uninstall functionality of the extension manager, which can be exploited if certain conditions are met.
Vulnerability Detail
The vulnerability arises from the way JupyterLab's PyPI extension manager processes uninstall requests. Specifically, the extension name is taken directly from the request body without proper validation for the 'uninstall' command. This allows an attacker to inject arguments that begin with a hyphen ('-'), which are interpreted as options by the pip command. As a result, sensitive server-readable files and internal URLs can be exposed through error messages returned by pip. The implications are significant for deployments where authenticated users can access the extension API while kernels and terminals are disabled, allowing them to probe server files and make outbound requests.
How To Fix
Latest published version: 4.6.4 as of 22 Oct 2026
pip install --upgrade "jupyterlab==4.6.4"
The newest release already contains this fix.
If you can't move to the latest
The minimum fixed version depends on the release line you run.
-
>= 4.0.0, < 4.5.114.5.11pip install --upgrade "jupyterlab==4.5.11"
Tip — Not sure which release line you're on? Vulert can find the fix for the version you are using. Scan free →
Workaround
For deployments that want to disable programmatic extension installation and removal entirely, switch to the read-only extension manager by adding the following configuration: '--LabApp.extension_manager=readonly' or by setting the traitlet in Python: 'c.LabApp.extension_manager = 'readonly''. This will prevent users from installing or removing extensions through the Extension Manager.
Conclusion
The CVE-2026-102904 vulnerability in JupyterLab poses a significant risk to deployments that allow authenticated users to access the extension API. By updating to the patched versions or implementing workarounds, users can protect their systems from potential exploitation. Additionally, tools like Vulert can assist in monitoring for vulnerabilities in open-source software.
See every vulnerability recorded for jupyterlab →
FAQ
CVE-2026-102904 is a vulnerability in JupyterLab that allows authenticated users to exploit the extension uninstall functionality, potentially exposing sensitive server files and internal URLs.
If you are using JupyterLab versions prior to 4.6.4 or 4.5.11, your installation may be vulnerable. You can check your version using 'jupyter lab --version'.
The risks include unauthorized access to server-readable files and the ability to make outbound requests from the server, which could expose sensitive information or internal services.
Yes, you can switch to a read-only extension manager to prevent any programmatic installation or removal of extensions, thereby mitigating the risk.
Vulert is a tool that monitors and alerts in real-time for open-source vulnerabilities in software. You can use the Vulert playground to check if your application is affected by this vulnerability without needing to sign up.
References
Related vulnerabilities
Recent vulnerabilities recorded for jupyterlab.