JupyterLab versions >=4.6.0,<=4.6.1 and <=4.5.9 contain an allowlist/blocklist enforcement gap in PyPIExtensionManager.install(). (CVE-2026-73626)
JupyterLab versions from 4.5.9 up to 4.6.1 contain a flaw in the PyPIExtensionManager.install() method where an asynchronous allowlist/blocklist check is not properly awaited, causing the check to be skipped. This affects only deployments that directly call install() with untrusted input, have an allowlist/blocklist configured, the PyPI Extension Manager enabled, and kernels/terminals disabled or remote. The standard JupyterLab HTTP API and Extension Manager UI are not affected. The issue is fixed in versions 4.6.2 and 4.5.10.
AI Analysis
Technical Summary
A concurrency bug in JupyterLab's PyPIExtensionManager.install() method causes the asynchronous is_install_allowed coroutine to never execute when install() is called directly, bypassing the extension allowlist/blocklist enforcement. This flaw affects versions >=4.6.0 <=4.6.1 and <=4.5.9. The vulnerability requires a specific deployment scenario involving direct calls to install() with untrusted input, configured allowlist/blocklist, enabled PyPI Extension Manager, and disabled or remote kernels/terminals. The standard HTTP API and UI are unaffected as they perform the check correctly. The issue is resolved in JupyterLab versions 4.6.2 and 4.5.10.
Potential Impact
This vulnerability could allow unauthorized installation of extensions in affected JupyterLab deployments under specific conditions, potentially undermining configured allowlist/blocklist protections. However, the impact is limited as the default user interfaces and APIs are not affected, and exploitation requires direct invocation of the vulnerable method with untrusted input in a particular configuration. There is no confidentiality, integrity, or availability impact reported.
Mitigation Recommendations
Upgrade to JupyterLab version 4.6.2 or later, or 4.5.10 or later, where this issue is fixed. If upgrading is not immediately possible, ensure that untrusted input cannot influence direct calls to PyPIExtensionManager.install(), and avoid disabling kernels and terminals or delegating them to remote hosts in affected deployments. Since the default HTTP API and Extension Manager UI are not vulnerable, using these interfaces mitigates risk.
JupyterLab versions >=4.6.0,<=4.6.1 and <=4.5.9 contain an allowlist/blocklist enforcement gap in PyPIExtensionManager.install(). (CVE-2026-73626)
Description
JupyterLab versions from 4.5.9 up to 4.6.1 contain a flaw in the PyPIExtensionManager.install() method where an asynchronous allowlist/blocklist check is not properly awaited, causing the check to be skipped. This affects only deployments that directly call install() with untrusted input, have an allowlist/blocklist configured, the PyPI Extension Manager enabled, and kernels/terminals disabled or remote. The standard JupyterLab HTTP API and Extension Manager UI are not affected. The issue is fixed in versions 4.6.2 and 4.5.10.
CVSS v3.1
Score 0.0none
Affected software
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
Weaknesses
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
A concurrency bug in JupyterLab's PyPIExtensionManager.install() method causes the asynchronous is_install_allowed coroutine to never execute when install() is called directly, bypassing the extension allowlist/blocklist enforcement. This flaw affects versions >=4.6.0 <=4.6.1 and <=4.5.9. The vulnerability requires a specific deployment scenario involving direct calls to install() with untrusted input, configured allowlist/blocklist, enabled PyPI Extension Manager, and disabled or remote kernels/terminals. The standard HTTP API and UI are unaffected as they perform the check correctly. The issue is resolved in JupyterLab versions 4.6.2 and 4.5.10.
Potential Impact
This vulnerability could allow unauthorized installation of extensions in affected JupyterLab deployments under specific conditions, potentially undermining configured allowlist/blocklist protections. However, the impact is limited as the default user interfaces and APIs are not affected, and exploitation requires direct invocation of the vulnerable method with untrusted input in a particular configuration. There is no confidentiality, integrity, or availability impact reported.
Mitigation Recommendations
Upgrade to JupyterLab version 4.6.2 or later, or 4.5.10 or later, where this issue is fixed. If upgrading is not immediately possible, ensure that untrusted input cannot influence direct calls to PyPIExtensionManager.install(), and avoid disabling kernels and terminals or delegating them to remote hosts in affected deployments. Since the default HTTP API and Extension Manager UI are not vulnerable, using these interfaces mitigates risk.
Technical Details
- Gcve Source
- db.gcve.eu
- Osv Id
- GHSA-r336-hqvq-mfjh
- Osv Schema Version
- 1.4.0
- Aliases
- ["CVE-2026-73626"]
- Ecosystems
- []
- Database Specific Severity
- LOW
- Cvss Version
- 3.1
Threat ID: 6a7e0375bf8831d5398f9e79
Added to database: 08/13/2026, 17:48:37 UTC
Last enriched: 08/13/2026, 18:14:22 UTC
Last updated: 08/13/2026, 20:43:33 UTC
Views: 3
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.