Jupyter: improper input validation
High8.8CVE-2026-42266 · Published May 5, 2026 · updated Sep 10, 2026
The allow-list of extensions that can be installed from PyPI Extension Manager (`allowed_extensions_uris`) is not correctly enforced by JupyterLab prior to 4.5.7. The PyPI Extension Manager was not contained to packages listed on the default PyPI index. This has security implications for deployments that: - have allow-listed specific extensions with aim to prevent users from installing packages - have the kernel and terminals disabled or delegated to remote hosts (thus no access to install packages in the single-user server environment) - have multi-tenant deployments that is not configured for untrusted users (as per documented on JupyterHub https://jupyterhub.readthedocs.io/en/5.2.1/explanation/websecurity.html) - have the (default) PyPI Extension Manager enabled ### Impact An authenticated attacker - such as a student in a shared JupyterHub environment or a user in a multi-tenant JupyterLab deployment - can escalate their privileges. This might allow for data exfiltration, lateral movement within the network, and persistent compromise of the server infrastructure. ### Patches JupyterLab [`v4.5.7`](https://github.com/jupyterlab/jupyterlab/releases/tag/v4.5.7) contains the pa...
Affected versions
| Package | Affected | Fixed in |
|---|---|---|
| jupyterlab PyPI | >= 4.0.0, < 4.5.7 | 4.5.7 |
Details and references
The allow-list of extensions that can be installed from PyPI Extension Manager (`allowed_extensions_uris`) is not correctly enforced by JupyterLab prior to 4.5.7. The PyPI Extension Manager was not contained to packages listed on the default PyPI index. This has security implications for deployments that: - have allow-listed specific extensions with aim to prevent users from installing packages - have the kernel and terminals disabled or delegated to remote hosts (thus no access to install packages in the single-user server environment) - have multi-tenant deployments that is not configured for untrusted users (as per documented on JupyterHub https://jupyterhub.readthedocs.io/en/5.2.1/explanation/websecurity.html) - have the (default) PyPI Extension Manager enabled ### Impact An authenticated attacker - such as a student in a shared JupyterHub environment or a user in a multi-tenant JupyterLab deployment - can escalate their privileges. This might allow for data exfiltration, lateral movement within the network, and persistent compromise of the server infrastructure. ### Patches JupyterLab [`v4.5.7`](https://github.com/jupyterlab/jupyterlab/releases/tag/v4.5.7) contains the patch. Users of applications that depend on JupyterLab, such as Notebook v7+, should update `jupyterlab` package too. ### Workarounds Switch to read-only extension manager by adding the following command line option: ```bash --LabApp.extension_manager=readonly ``` or the following traitlet: ```python c.LabApp.extension_manager = 'readonly' ``` You can confirm that the read-only manager is in use from GUI: <img width="293" height="293" alt="image" src="https://github.com/user-attachments/assets/8016c809-633e-4ed0-a5bc-6bc4793caa0f" /> Note: configuration of a PyPI proxy with allow-listed packages is not sufficient to protect from this vulnerability. ### References - allow-list https://jupyterlab.readthedocs.io/en/stable/user/extensions.html#listing-configuration - https://jupyterhub.readthedocs.io/en/5.2.1/explanation/websecurity.html - https://jupyterlab.readthedocs.io/en/latest/user/extensions.html#extension-manager-implementations
- CVSS 3.1
- CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
- Severity from
- GitHub (reviewed advisory)
- Weakness
- CWE-20, CWE-602, CWE-88
- Also known as
- BIT-jupyterlab-2026-42266, CVE-2026-42266, PYSEC-2026-164
- github.com/jupyterlab/jupyterlab/security/advisories/GHSA-37w4-hwhx-4rc4
- nvd.nist.gov/vuln/detail/CVE-2026-42266
- github.com/jupyterlab/jupyterlab
- github.com/jupyterlab/jupyterlab/releases/tag/v4.5.7
- github.com/pypa/advisory-database/tree/main/vulns/jupyterlab/PYSEC-2026-164.yaml
- jupyterhub.readthedocs.io/en/5.2.1/explanation/websecurity.html
- jupyterlab.readthedocs.io/en/latest/user/extensions.html#extension-manager-implementations
More Jupyter advisories
All Jupyter| Date | Advisory | Severity | Fixed in |
|---|---|---|---|
| May 6 | JupyterLab's command linker attributes in HTML enable one-click command execution from untrusted content | High9.6 | 4.5.7+1 more |
| May 5 | JupyterHub has cross-origin form POSTs bypass XSRF (CWE-352) | Medium5.4 | 5.4.5 |
| May 5 | Jupyter Server's Authentication Cookies Remain Valid After Password Reset and Server Restart | High6.8 | 2.18.0 |
| May 5 | Jupyter Server has a CORS Origin Validation Bypass via `re.match()` in `allow_origin_pat` | High | 2.18.0 |
| May 5 | Jupyter: path traversal | High7.1 | 2.18.0 |
| May 5 | Jupyter Server has an open redirection vulnerability in `next` query parameter | Medium | 2.18.0 |