GHSA-89VP-JRXV-24W8: Extension Manager Blocklist Canonicalization Bypass in JupyterLab
Vulnerability ID: GHSA-89VP-JRXV-24W8
CVSS Score: 6.1
Published: 2026-07-22
GHSA-89VP-JRXV-24W8 is a security bypass vulnerability in the JupyterLab Extension Manager. Authenticated users can install unauthorized or blocklisted extension packages from PyPI. This bypass occurs due to improper canonicalization of package names and the incorrect synchronous invocation of an asynchronous permission-checking method.
TL;DR
A case-insensitive and syntax-insensitive package name canonicalization issue, combined with a synchronous execution flaw of an asynchronous verification function, allows authenticated users to install blocklisted JupyterLab extensions from PyPI.
⚠️ Exploit Status: POC
Technical Details
- CWE ID: CWE-180
- Attack Vector: Network
- CVSS Score: 6.1
- Exploit Status: poc
- CISA KEV Status: false
Affected Systems
- JupyterLab
-
jupyterlab: >= 4.5.0, <= 4.5.9 (Fixed in:
4.5.10) -
jupyterlab: >= 4.6.0, <= 4.6.1 (Fixed in:
4.6.2)
Code Analysis
Commit: be9303f
Backport PR #19184 on branch 4.5.x (Fix validation checks of package installation in Extension Manager)
Commit: f1beab4
Backport PR #19184 on branch 4.6.x (Fix validation checks of package installation in Extension Manager)
Mitigation Strategies
- Upgrade jupyterlab package to safe versions (>=4.5.10 or >=4.6.2)
- Disable write access to the Extension Manager by setting it to read-only
Remediation Steps:
- Identify the active jupyterlab installation version using 'pip show jupyterlab'.
- Run 'pip install --upgrade jupyterlab>=4.6.2' or 'conda update jupyterlab' to install the security patch.
- Alternatively, modify the 'jupyter_lab_config.py' configuration file and add 'c.LabApp.extension_manager = "readonly"' to disable modifications.
References
Read the full report for GHSA-89VP-JRXV-24W8 on our website for more details including interactive diagrams and full exploit analysis.
Top comments (0)