JupyterLab CVE-2026-73416
MEDIUMSeverity by source
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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
AC:H because a custom blocklist configuration must be present; PR:L for authenticated requirement; C:N as the user already accesses their own server data.
Primary rating from Vendor (github).
CVSS VectorVendor: github
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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Lifecycle Timeline
3Blast Radius
ecosystem impact- 5 pypi packages depend on jupyterlab (2 direct, 3 indirect)
Ecosystem-wide dependent count for version 4.6.0.
DescriptionCVE.org
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.
AnalysisAI
JupyterLab's PyPI extension manager uses a weaker custom normalization instead of PyPI's canonical name resolution, enabling authenticated users to bypass administrator-configured package blocklists by submitting alternate spellings of blocked packages. Versions 4.5.0 through 4.5.9 and 4.6.0 through 4.6.1 are affected; fixed releases 4.5.10 and 4.6.2 are available. …
Unlock full vulnerability intelligence
- Risk assessment & exploitation conditions
- Attack chain visualization
- Remediation with exact patch versions
- Threat intelligence from 22 sources
- Personal watchlist & email alerts
Free forever · No credit card required
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata
Vulnerability AssessmentAI
| Exploitation | Exploitation requires all three of the following simultaneously: (1) an administrator has configured a custom allowlist or blocklist via `blocked_extensions_uris` with the intent of restricting which PyPI packages users can install; (2) the default PyPI Extension Manager is enabled and has not been switched to `readonly` mode; and (3) kernels and terminals are disabled or delegated to remote hosts - if users retain direct kernel or terminal access, they can install packages via pip without needing the Extension Manager bypass at all. … Additional conditions and limiting factors are described in the full assessment. |
| Risk Assessment | The CVSS 4.0 score of 6.1 (Medium) appropriately reflects the combination of network accessibility (AV:N), low-privilege requirement (PR:L), and the AT:P attribute indicating that specific preconditions must be present. … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in. |
| Exploit Scenario | An authenticated user on a JupyterHub deployment that has blocklisted `jupyterlab-git` submits an install request for `JupyterLab.Git` through the Extension Manager UI. JupyterLab's weak normalization fails to match this spelling to the blocklist entry and accepts the request, after which pip resolves the alternate name to the identical blocked package and installs it. … |
| Remediation | Upgrade to JupyterLab 4.5.10 (https://github.com/jupyterlab/jupyterlab/releases/tag/v4.5.10) or 4.6.2 (https://github.com/jupyterlab/jupyterlab/releases/tag/v4.6.2), which are the vendor-confirmed patched releases. … Detailed patch versions, workarounds, and compensating controls in full report. |
Threat intelligence, references, and detailed analysis are available after sign-in.
Same weakness CWE-178 – Improper Handling of Case Sensitivity
View allSame technique Authentication Bypass
View allVendor StatusVendor
SUSE
Severity: ModerateShare
External POC / Exploit Code
Leaving vuln.today