CyberRota Analysis
AI-GeneratedJupyterLab versions 4.6.0 to 4.6.1 and 4.5.9 have a vulnerability in the PyPIExtensionManager.install() function due to a missing 'await', which prevents the enforcement of extension allowlist/blocklist checks for direct calls to install() with untrusted input. This issue primarily impacts deployments using custom extensions or integrations that bypass the standard HTTP API and Extension Manager UI, particularly in environments where kernels and terminals are disabled or managed remotely. Organizations using affected versions should prioritize upgrading to JupyterLab 4.6.2 or 4.5.10 to mitigate potential risks.
Public Exploit Signal
A public exploit, PoC, GitHub repository or Metasploit reference was detected for this CVE.
Note: these links are listed for security research and verification purposes only.
Original NVD 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.