CVE-2026-73416: JupyterLab extension blocklist bypass via package name variant

CVE-2026-73416 · Severity: medium · CVSS 4 · Published 2026-08-13

JupyterLab is an interactive computing environment that allows administrators to restrict which extensions users can install via an allowlist or blocklist. The PyPI extension manager uses weaker name normalization than PyPI itself, allowing authenticated users to request variant spellings (e.g., "JupyterLab.Git" instead of "jupyterlab-git") to bypass installation restrictions and install prohibited extensions. This compromises the integrity controls administrators rely on to prevent unauthorized software from running in their computing environments.

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

Quick answers

Is CVE-2026-73416 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-73416 being exploited in the wild.
How severe is CVE-2026-73416?
Medium severity, with a CVSS score of 4, published 13 August 2026.
Which products and versions are affected?
Project Jupyter JupyterLab 4.5.0 through 4.5.9, 4.6.0 through 4.6.1; jupyterlab (PyPI) ECOSYSTEM:introduced=4.5.0,fixed=4.5.10,introduced=4.6.0,fixed=4.6.2, ECOSYSTEM:introduced=4.6.0,fixed=4.6.2.
Is there a fix for CVE-2026-73416?
Yes. jupyterlab (PyPI): upgrade to 4.6.2 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-73416 attacked?
It is attacked over the network.
Am I affected by CVE-2026-73416?
Check whether you run Project Jupyter 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.2 or later
    pip install "jupyterlab>=4.6.2"

Technical details

The vulnerability is an authorization bypass in the PyPI extension manager (jupyterlab/extensions/manager.py and jupyterlab/extensions/pypi.py) where blocked_extensions_uris enforcement uses custom package-name normalization that is weaker than PyPI's canonical name normalization (PEP 503). An authenticated user can request a PyPI-equivalent variant spelling of a blocklisted package, and JupyterLab will accept the install request even though pip resolves it to the same underlying package. Attack surface requires authentication and either an extension allowlist/blocklist in place or remote kernel/terminal delegation. An attacker can install a prohibited extension, defeat integrity restrictions, and cause availability impact. The issue is fixed in versions 4.5.10 and 4.6.2.

Affected products

  • Project Jupyter JupyterLab 4.5.0 through 4.5.9, 4.6.0 through 4.6.1

Identifiers

  • CVE-2026-73416
  • GHSA-89vp-jrxv-24w8
  • PYSEC-2026-3670

Timeline

  • 2026-08-13: disclosed
  • 2026-07-21: patched: Security patches committed to main and 4.5.x branches; versions 4.5.10 and 4.6.2 released

References

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