CVE-2026-102904: JupyterLab Extension Uninstall Argument Injection Vulnerability

jupyterlab Updated 01 Oct 2026

Summary

01/10/2026
Yes i
Moderate
5.4

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

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.

Free scan

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.

Check my app free

No signup required · Results in about 60 seconds

Sponsored MarkAI Find prospects already talking about the problem you solve AI watches the communities your customers use to find qualified prospects, then alerts you when a conversation is worth joining. See MarkAI

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.11 4.5.11
    pip 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 →

Share this vulnerability

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.

Related vulnerabilities

Recent vulnerabilities recorded for jupyterlab.

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.11 4.5.11
    pip 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 →

Subscribe to Vulert on Telegram
Daily digest of new CVEs, critical and high severity, affected packages and fixes — plus a weekly roundup.
Join the channel →
Help improve this record
Report an issue or send feedback