JupyterLab: PyPI extension blocklist package-name canonicalization bypass
JupyterLab versions from 4.5.0 up to but not including 4.5.10, and from 4.6.0 up to but not including 4.6.2, contain a vulnerability in the PyPI extension manager. The blocklist enforcement uses a weaker normalization method than PyPI's canonical package-name normalization, allowing an authenticated user to bypass the blocklist by requesting an equivalent package name variant. This lets the user install prohibited extensions, defeating integrity restrictions and potentially affecting availability without gaining additional read access. The issue is fixed in versions 4.5.10 and 4.6.2.
AI Analysis
Technical Summary
JupyterLab's PyPI extension manager enforces a blocklist of prohibited extensions by comparing requested package names to blocklist entries using a custom normalization method that is weaker than PyPI's canonical package-name normalization. This discrepancy allows an authenticated user to bypass the blocklist by requesting a PyPI-equivalent package name variant (e.g., 'JupyterLab.Git' instead of 'jupyterlab-git'), which JupyterLab accepts while pip resolves both to the same package. The vulnerability affects versions >=4.5.0 <4.5.10 and >=4.6.0 <4.6.2. Exploitation requires the use of the PyPI Extension Manager and an allowlist or blocklist intended to restrict package installation. The impact includes installation of prohibited extensions, bypassing integrity restrictions, and affecting availability without gaining new read access. The issue is resolved in versions 4.5.10 and 4.6.2.
Potential Impact
An authenticated user can bypass the PyPI extension blocklist by using package name variants that are equivalent under PyPI's canonicalization but not recognized by JupyterLab's weaker normalization. This allows installation of prohibited extensions, which can defeat integrity restrictions and impact availability. However, the vulnerability does not grant new read access privileges. The impact is limited to environments using the PyPI Extension Manager with blocklists or allowlists configured, and where kernels and terminals are either disabled or delegated to remote hosts.
Mitigation Recommendations
A fix is available in JupyterLab versions 4.5.10 and 4.6.2. Users should upgrade to at least these versions to resolve the vulnerability. If upgrading is not immediately possible, review and adjust extension installation policies and consider restricting authenticated user permissions to limit potential exploitation. No additional vendor advisories indicate alternative mitigations or that the issue is already mitigated.
JupyterLab: PyPI extension blocklist package-name canonicalization bypass
Description
JupyterLab versions from 4.5.0 up to but not including 4.5.10, and from 4.6.0 up to but not including 4.6.2, contain a vulnerability in the PyPI extension manager. The blocklist enforcement uses a weaker normalization method than PyPI's canonical package-name normalization, allowing an authenticated user to bypass the blocklist by requesting an equivalent package name variant. This lets the user install prohibited extensions, defeating integrity restrictions and potentially affecting availability without gaining additional read access. The issue is fixed in versions 4.5.10 and 4.6.2.
CVSS v4.0
Affected software
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
JupyterLab's PyPI extension manager enforces a blocklist of prohibited extensions by comparing requested package names to blocklist entries using a custom normalization method that is weaker than PyPI's canonical package-name normalization. This discrepancy allows an authenticated user to bypass the blocklist by requesting a PyPI-equivalent package name variant (e.g., 'JupyterLab.Git' instead of 'jupyterlab-git'), which JupyterLab accepts while pip resolves both to the same package. The vulnerability affects versions >=4.5.0 <4.5.10 and >=4.6.0 <4.6.2. Exploitation requires the use of the PyPI Extension Manager and an allowlist or blocklist intended to restrict package installation. The impact includes installation of prohibited extensions, bypassing integrity restrictions, and affecting availability without gaining new read access. The issue is resolved in versions 4.5.10 and 4.6.2.
Potential Impact
An authenticated user can bypass the PyPI extension blocklist by using package name variants that are equivalent under PyPI's canonicalization but not recognized by JupyterLab's weaker normalization. This allows installation of prohibited extensions, which can defeat integrity restrictions and impact availability. However, the vulnerability does not grant new read access privileges. The impact is limited to environments using the PyPI Extension Manager with blocklists or allowlists configured, and where kernels and terminals are either disabled or delegated to remote hosts.
Mitigation Recommendations
A fix is available in JupyterLab versions 4.5.10 and 4.6.2. Users should upgrade to at least these versions to resolve the vulnerability. If upgrading is not immediately possible, review and adjust extension installation policies and consider restricting authenticated user permissions to limit potential exploitation. No additional vendor advisories indicate alternative mitigations or that the issue is already mitigated.
Technical Details
- Gcve Source
- db.gcve.eu
- Osv Id
- GHSA-89vp-jrxv-24w8
- Osv Schema Version
- 1.4.0
- Aliases
- []
- Ecosystems
- ["PyPI"]
- Database Specific Severity
- MODERATE
- Cvss Version
- 4.0
Threat ID: 6a616bcb9c2644c7f80dbc42
Added to database: 07/23/2026, 01:18:03 UTC
Last enriched: 08/19/2026, 14:08:04 UTC
Last updated: 09/05/2026, 11:52:16 UTC
Views: 58
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.