Description
jupyterlab is an extensible environment for interactive and reproducible computing, based on the Jupyter Notebook Architecture. From 4.5.0 until 4.5.10 and 4.6.2, in jupyterlab/extensions/manager.py and jupyterlab/extensions/pypi.py, JupyterLab's PyPI extension manager enforces blocked_extensions_uris by comparing requested install names to blocklist entries with custom normalization that is weaker than PyPI package-name canonicalization. An authenticated user can request a PyPI-equivalent spelling such as JupyterLab.Git for a blocklisted package such as jupyterlab-git, and JupyterLab accepts the install request even though pip resolves the variant to the same package. Security impact requires an allowlist or blocklist intended to restrict package installation, the PyPI Extension Manager, and kernels and terminals that are disabled or delegated to remote hosts. The bypass lets an authenticated user install a prohibited extension, defeat integrity restrictions, and affect availability without gaining new read access. This issue is fixed in versions 4.5.10 and 4.6.2.
Published: 2026-08-13
Score: 6.1 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

JupyterLab’s PyPI extension manager uses a weakened canonicalization routine that compares requested install names to a blocklist. An authenticated user can submit a PyPI‑equivalent spelling—such as JupyterLab.Git for the blocklisted package jupyterlab‑git—which bypasses the blocklist because the manager fails to apply standard PyPI canonicalization. The attacker therefore gains the ability to install a prohibited extension, thereby compromising the integrity of the JupyterLab environment and potentially affecting its availability without giving the attacker any additional read privileges.

Affected Systems

Versions 4.5.0 through 4.5.9 and 4.6.0 through 4.6.1 of JupyterLab on any platform where the PyPI extension manager is enabled are affected. These releases lack the proper normalization fix and allow the blocklist bypass described above.

Risk and Exploitability

The CVSS score of 6.1 indicates a moderate risk level, and the EPSS score of less than 1% suggests a very low probability of exploitation. The vulnerability is not listed in the CISA KEV catalog. Attackers must first be authenticated to a JupyterLab instance that still uses the vulnerable extension manager. Once authenticated, the attacker can trigger the blocklist bypass by using an alternate spelling to install a blocked extension. Because the attack requires local authentication and a previously enabled extension manager, the overall likelihood is low, but the impact of a successful bypass remains significant.

Generated by OpenCVE AI on August 15, 2026 at 02:20 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to JupyterLab 4.5.10 or later, or 4.6.2 or later, which includes a fix for correct canonicalization of package names.
  • If upgrading is not immediately possible, limit or disable the PyPI extension manager for users who should not install extensions, thereby reducing the attack surface.
  • After applying the upgrade or restriction, confirm that blocklist enforcement still functions by reviewing installation logs and consider tightening the blocklist with stricter matching rules or manual oversight.

Generated by OpenCVE AI on August 15, 2026 at 02:20 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-89vp-jrxv-24w8 JupyterLab: PyPI extension blocklist package-name canonicalization bypass
History

Mon, 17 Aug 2026 18:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

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


Sat, 15 Aug 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-1289
References
Metrics threat_severity

None

cvssV3_1

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

threat_severity

Moderate


Fri, 14 Aug 2026 10:00:00 +0000

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

Thu, 13 Aug 2026 22:15: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 4.5.0 until 4.5.10 and 4.6.2, in jupyterlab/extensions/manager.py and jupyterlab/extensions/pypi.py, JupyterLab's PyPI extension manager enforces blocked_extensions_uris by comparing requested install names to blocklist entries with custom normalization that is weaker than PyPI package-name canonicalization. An authenticated user can request a PyPI-equivalent spelling such as JupyterLab.Git for a blocklisted package such as jupyterlab-git, and JupyterLab accepts the install request even though pip resolves the variant to the same package. Security impact requires an allowlist or blocklist intended to restrict package installation, the PyPI Extension Manager, and kernels and terminals that are disabled or delegated to remote hosts. The bypass lets an authenticated user install a prohibited extension, defeat integrity restrictions, and affect availability without gaining new read access. This issue is fixed in versions 4.5.10 and 4.6.2.
Title jupyterlab: PyPI extension blocklist package-name canonicalization bypass
Weaknesses CWE-178
CWE-180
References
Metrics cvssV4_0

{'score': 6.1, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:L/VI:H/VA:L/SC:N/SI:N/SA:N'}


Subscriptions

Jupyter Jupyterlab
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-17T17:17:59.508Z

Reserved: 2026-08-12T14:32:11.795Z

Link: CVE-2026-73416

cve-icon Vulnrichment

Updated: 2026-08-17T17:17:52.718Z

cve-icon NVD

Status : Received

Published: 2026-08-13T22:17:25.963

Modified: 2026-08-17T18:18:13.730

Link: CVE-2026-73416

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-08-13T22:04:26Z

Links: CVE-2026-73416 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-15T02:30:16Z

Weaknesses
  • CWE-1289

    Improper Validation of Unsafe Equivalence in Input

  • CWE-178

    Improper Handling of Case Sensitivity

  • CWE-180

    Incorrect Behavior Order: Validate Before Canonicalize