JupyterLab PluginManager lock-rule enforcement bypass
Key facts
- Attack vector
- —
- Privileges required
- —
- User interaction
- —
- Attack complexity
- —
- Impact type
- Security bypass
- Confidentiality · integrity · availability
- —
- Fix status
- Fixed
No CVSS vector from any source. Fix status from GitHub. Impact type from CWE-863.
Summary
JupyterLab's plugin manager exposes administrator controls intended to prevent users from enabling or disabling selected plugins. Two server-side enforcement gaps let an authenticated user bypass those controls with direct requests to `/lab/api/plugins`. ### Impact Users could workaround the plugin manager lock rules via direct API access for either: - child plugins of extensions covering multiple plugins - when "lock all" was issued by the administrator The integrity of data can be impacted, and any hardening or restrictions on permitted user actions (e.g. download/upload limits) within the single-user server can be circumvented if those were implemented with plugins that were locked using the faulty mechanisms. ### Patches JupyterLab [`v4.6.2`](https://github.com/jupyterlab/jupyterlab/releases/tag/v4.6.2) and [`v4.5.10`](https://github.com/jupyterlab/jupyterlab/releases/tag/v4.5.10) contain the patch. Users of applications that depend on JupyterLab, such as Notebook v7+, should update `jupyterlab` package too. ### Workarounds Manually lock all plugins that should be locked. The core plugin identifiers can be found in [the documentation](https://jupyterlab.readthedocs.io/en/latest/extension/extension_points.html#core-plugins) and identifiers for all installed extensions are listed in the [Plugin Manager](https://jupyterlab.readthedocs.io/en/latest/user/extensions.html#managing-plugins-with-plugin-manager).
Why it matters now
SSVC decision points
Not available: CISA has not published SSVC decision points for this record.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| — | jupyterlab (PyPI) | 4.6.0 to before 4.6.2 | 4.6.2 | Patch available | GHSA-h5v5-8746-g7mm |
| — | jupyterlab (PyPI) | 4.1.0 to before 4.5.10 | 4.5.10 | Patch available | GHSA-h5v5-8746-g7mm |
- jupyterlab (PyPI) Vendor— Affected 4.6.0 to before 4.6.2 Fixed in 4.6.2 Patch available GHSA-h5v5-8746-g7mm
- jupyterlab (PyPI) Vendor— Affected 4.1.0 to before 4.5.10 Fixed in 4.5.10 Patch available GHSA-h5v5-8746-g7mm
Remediation
- Fix · GHSA-h5v5-8746-g7mm jupyterlab (PyPI) Fixed in 4.6.2 Advisory →
- Fix · GHSA-h5v5-8746-g7mm jupyterlab (PyPI) Fixed in 4.5.10 Advisory →
Timeline
- 2026-10-03 Threatist record created from GHSA-h5v5-8746-g7mm
References
Other 9
- https://github.com/jupyterlab/jupyterlab/security/advisories/GHSA-h5v5-8746-g7mm
- https://github.com/jupyterlab/jupyterlab/pull/19184
- https://github.com/jupyterlab/jupyterlab/pull/19185
- https://github.com/jupyterlab/jupyterlab/pull/19186
- https://github.com/jupyterlab/jupyterlab/commit/be9303f5bcd5308eaeae953c5a3c903046682c2c
- https://github.com/jupyterlab/jupyterlab/commit/f1beab4a2027af4719d6edc07d52d6cf5a39a432
- https://github.com/jupyterlab/jupyterlab
- https://github.com/jupyterlab/jupyterlab/releases/tag/v4.5.10
- https://github.com/jupyterlab/jupyterlab/releases/tag/v4.6.2
Sources
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences