CVE-2026-73626
Received Received - Intake

PyPIExtensionManager install() Allowlist Bypass in JupyterLab

Vulnerability report for CVE-2026-73626, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-08-13

Last updated on: 2026-08-13

Assigner: VulnCheck

Description

JupyterLab versions >=4.6.0,<=4.6.1 and <=4.5.9 contain an allowlist/blocklist enforcement gap in PyPIExtensionManager.install(). A missing 'await' caused the is_install_allowed coroutine to never execute, so the extension allowlist/blocklist check was not enforced for direct callers of install(). The stock JupyterLab HTTP API and Extension Manager UI are not affected, as they perform a separate, correctly awaited check. The issue affects only deployments where a custom extension or downstream integration imports PyPIExtensionManager and calls install() directly with a package name influenced by untrusted input, an allowlist/blocklist is configured, the PyPI Extension Manager is enabled, and kernels and terminals are disabled or delegated to remote hosts. Fixed in JupyterLab 4.6.2 and 4.5.10.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-08-13
Last Modified
2026-08-13
Generated
2026-08-13
AI Q&A
2026-08-13
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 4 associated CPEs
Vendor Product Version / Range
jupyterlab jupyterlab From 4.6.0 (inc) to 4.6.1 (inc)
jupyterlab jupyterlab to 4.5.9 (inc)
jupyterlab jupyterlab 4.6.2
jupyterlab jupyterlab 4.5.10

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-284 The product does not restrict or incorrectly restricts access to a resource from an unauthorized actor.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This vulnerability affects JupyterLab versions between 4.6.0 and 4.6.1 and up to 4.5.9. It involves a missing 'await' statement in the PyPIExtensionManager.install() method, which prevents the allowlist or blocklist check from running when the install() method is called directly with untrusted input. This only impacts custom extensions or integrations that bypass the standard API or UI checks.

Detection Guidance

Check JupyterLab version with 'jupyter lab --version'. If it is between 4.6.0-4.6.1 or <=4.5.9, the system is vulnerable. Inspect custom extensions or integrations for direct calls to PyPIExtensionManager.install() with untrusted input.

Impact Analysis

The impact is limited to specific deployments where custom extensions call install() directly with untrusted input, an allowlist or blocklist is configured, and kernels or terminals are disabled or remote. The standard JupyterLab API and UI are not affected. Attackers could potentially install unauthorized extensions if these conditions are met.

Mitigation Strategies

Upgrade JupyterLab to version 4.6.2 or 4.5.10. Alternatively, disable programmatic installation via the read-only extension manager. Ensure no custom extensions call PyPIExtensionManager.install() directly with untrusted input.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-73626. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart