Description
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.
Published: 2026-09-29
Score: 5.4 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Information Disclosure
Action: Patch
AI Analysis

Impact

The flaw allows an authenticated user with extension API privileges to supply arbitrary pip arguments during an extension uninstall request. Because uninstall names are passed to Python pip without filtering for option-like values, the attacker can inject pip options that cause the server to read a local file or fetch an internal URL. The resulting parse errors or pip log data can be reflected back in error responses, exposing the requested content. The vulnerability does not enable code execution or denial of service, but it does expose sensitive server files and internal addresses.

Affected Systems

JupyterLab environments running version 4.0.0 up to and including 4.5.10 and 4.6.3 are vulnerable. The problem is fixed starting with JupyterLab 4.5.11 and 4.6.4, which implement proper validation of uninstall parameters.

Risk and Exploitability

The CVSS score of 5.4 indicates a moderate impact, and the EPSS is not available, implying no known widespread exploitation yet. The flaw is not listed in the CISA KEV catalog. Attack requires the PyPI Extension Manager to be enabled and the attacker to have authenticated access to the extension API, but not remote code execution or privilege escalation. Once triggered, the attacker can read arbitrary files or internal URLs, potentially revealing configuration secrets, private data, or other sensitive information.

Generated by OpenCVE AI on September 30, 2026 at 08:16 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade JupyterLab to version 4.5.11 or later, including 4.6.4, which contain the fix for the argument injection bug.
  • If an upgrade is not immediately possible, disable the PyPI Extension Manager in the JupyterLab settings or restrict the extension API to trusted users to prevent the injection vector.
  • Ensure that pip command executions performed by the server are stripped of untrusted input and that any error responses are sanitized to avoid leaking internal file paths or URL content.

Generated by OpenCVE AI on September 30, 2026 at 08:16 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-3325-v43h-43rv JupyterLab: Argument injection in JupyterLab extension uninstall exposes server-readable files and internal URLs
History

Wed, 30 Sep 2026 21:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Wed, 30 Sep 2026 20:45:00 +0000

Type Values Removed Values Added
First Time appeared Jupyter
Jupyter jupyterlab
Vendors & Products Jupyter
Jupyter jupyterlab

Wed, 30 Sep 2026 00:15:00 +0000

Type Values Removed Values Added
References
Metrics threat_severity

None

threat_severity

Moderate


Tue, 29 Sep 2026 21:00:00 +0000

Type Values Removed Values Added
Description 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.
Title JupyterLab: Argument injection in JupyterLab extension uninstall exposes server-readable files and internal URLs
Weaknesses CWE-209
CWE-88
CWE-918
References
Metrics cvssV3_1

{'score': 5.4, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N'}


Subscriptions

Jupyter Jupyterlab
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-09-30T20:07:08.531Z

Reserved: 2026-09-29T17:34:42.744Z

Link: CVE-2026-102904

cve-icon Vulnrichment

Updated: 2026-09-30T20:07:03.689Z

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-09-29T21:17:18.423

Modified: 2026-09-30T21:17:06.180

Link: CVE-2026-102904

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-09-29T20:47:43Z

Links: CVE-2026-102904 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-09-30T20:30:18Z

Weaknesses
  • CWE-209

    Generation of Error Message Containing Sensitive Information

  • CWE-88

    Improper Neutralization of Argument Delimiters in a Command ('Argument Injection')

  • CWE-918

    Server-Side Request Forgery (SSRF)