Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to JupyterLab server with valid credentials
-
DeliveryIdentify target locked plugin identifier via Plugin Manager UI or documentation
-
ExploitCraft direct HTTP request to /lab/api/plugins endpoint
-
ExecutionSubmit request bypassing server-side lock enforcement
-
PersistEnable or disable administrator-restricted plugin
-
ImpactCircumvent security controls implemented through that plugin
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V4 - API and Web Service Server-side security enforcement
|
| Exploitation Conditions | Exploitation requires a valid authenticated session on the JupyterLab server (PR:L confirmed by CVSS vector). Beyond authentication, the attack only has material impact when an administrator has configured plugin lock rules - either via the 'lock all' mechanism or by locking child plugins of multi-plugin extensions (AT:P in CVSS 4.0 reflects this prerequisite). In deployments where no plugin locks are configured, there is nothing to bypass and the vulnerability is effectively inert. The bypass is scoped to enabling or disabling plugins within the attacker's own session; it does not grant access to other users' sessions, other system resources, or allow direct code injection. Exploitation is therefore most relevant to multi-user JupyterHub environments where administrators enforce per-user plugin restrictions to implement security boundaries such as data exfiltration controls. |
| Impact | The CVSS 4.0 score of 6.0 with vector AV:N/AC:L/AT:P/PR:L/UI:N/VC:L/VI:H/VA:N reflects a medium-severity issue. The AT:P metric (attack requirements present) is significant: exploitation only has meaningful impact when an administrator has actively configured plugin lock rules - deployments without locks have no security boundary to bypass. PR:L confirms authentication is required. The high integrity impact (VI:H) is appropriate given that an attacker can directly subvert administrative security controls, not merely read data. No CISA KEV listing and no identified POC reduce operational urgency for most environments. However, organizations running multi-user JupyterHub deployments where locked plugins enforce data governance or exfiltration controls face elevated real-world risk, as the bypass directly nullifies those controls. For environments with no administrator-configured locks, the practical risk is negligible despite the network-accessible attack vector. |
| Exploit ScenarioDerived | An authenticated user on a shared JupyterHub server, aware of the /lab/api/plugins endpoint, sends a direct HTTP POST request to enable a file-download plugin that the administrator locked to enforce a data retention policy. With the plugin re-enabled within their session, the user can download restricted datasets, bypassing the intended organizational control. No public proof-of-concept code has been identified, but the attack requires only a valid session token and knowledge of the target plugin identifier, both of which are readily obtainable within the application. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 13, 2026
Plugin lock-rule enforcement bypass in JupyterLab (pip package, versions >=4.1.0,<=4.5.9 and >=4.6.0,<=4.6.1) allows authenticated users to subvert administrator-configured plugin restrictions by sending direct requests to the /lab/api/plugins endpoint. Two distinct server-side enforcement gaps expose child plugins of multi-plugin extensions and plugins locked via the 'lock all' mechanism to unauthorized enable/disable operations, undermining data integrity controls and security restrictions - such as download/upload limits - implemented through locked plugins. No public exploit code has been identified at time of analysis, and this CVE is not listed in the CISA KEV catalog.
RemediationAI
Vendor-released patch: upgrade the jupyterlab pip package to 4.6.2 (for 4.6.x deployments) or 4.5.10 (for 4.5.x deployments), both of which contain the server-side enforcement fix per the GHSA advisory. For applications that depend on jupyterlab such as Jupyter Notebook v7+, the jupyterlab package must also be updated within those environments. If immediate patching is not feasible, the vendor provides a specific workaround: manually lock every individual plugin that should be restricted using its exact plugin identifier, rather than relying on the 'lock all' mechanism or extension-level locks - both of which are affected by the bypass. Core plugin identifiers are documented at https://jupyterlab.readthedocs.io/en/latest/extension/extension_points.html#core-plugins, and identifiers for all installed extensions are listed in the Plugin Manager UI. This workaround requires ongoing administrative maintenance as new extensions are installed, as each new plugin must be individually locked. Upstream patches were introduced via GitHub pull requests https://github.com/jupyterlab/jupyterlab/pull/19184 and https://github.com/jupyterlab/jupyterlab/pull/19185.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in pypi
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
JupyterLab's PluginManager provides an administrative interface allowing server operators to lock specific plugins, preventing users from toggling them. The root cause is CWE-602 (Client-Side Enforcement of Server-Side Security): the server-side enforcement logic for the /lab/api/plugins endpoint contains two gaps - one failing to enforce lock rules for child plugins within multi-plugin extensions, and another failing to honor the 'lock all' administrator directive. Authenticated users can bypass the enforcement by constructing direct HTTP requests to the API rather than going through the UI, which would otherwise reflect the locked state. Affected CPE is cpe:2.3:a:jupyterlab:jupyterlab covering pip package versions 4.1.0 through 4.5.9 and 4.6.0 through 4.6.1. Downstream products bundling jupyterlab, including Jupyter Notebook v7+, inherit the vulnerability.
Know when Jupyterlab gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:L/VI:H/VA:N/SC:N/SI:N/SA:N
Network vector confirmed by direct API access; PR:L reflects required authentication; S:U as impact is confined to the single-user server session; I:H reflects bypass of administrative plugin controls.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
JupyterLab (pip package 'jupyterlab') versions >=4.1.0,<=4.5.9 and >=4.6.0,<=4.6.1 contain a plugin manager lock-rule enforcement bypass. Two server-side enforcement gaps allow an authenticated user to circumvent administrator lock rules by making direct requests to the /lab/api/plugins endpoint, enabling or disabling plugins that were locked - including child plugins of multi-plugin extensions and plugins locked via the 'lock all' mechanism. This can impact data integrity and bypass hardening or restrictions (e.g., download/upload limits) implemented through locked plugins. Fixed in versions 4.6.2 and 4.5.10.
Blast Radius
ecosystem impact- 5 pypi packages depend on jupyterlab (2 direct, 3 indirect)
Ecosystem-wide dependent count for version 4.6.0.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
More in Jupyterlab
View allJupyterLab extension template is a `copier` template for JupyterLab extensions. Rated critical severity (CVSS 9.8), this
JupyterLab is a user interface for Project Jupyter which will eventually replace the classic Jupyter Notebook. Rated cri
JupyterLab is an extensible environment for interactive and reproducible computing, based on the Jupyter Notebook and Ar
jupyterlab is an extensible environment for interactive and reproducible computing, based on the Jupyter Notebook Archit
JupyterLab is an extensible environment for interactive and reproducible computing, based on the Jupyter Notebook and Ar
Argument injection in JupyterLab's PyPI Extension Manager (JupyterLab 4.0.0 through 4.5.10 and the 4.6.x branch before 4
Stored cross-site scripting in JupyterLab's Extension Manager allows an attacker who publishes a malicious PyPI package
Improper trust attribution in JupyterLab's markdownviewer:trust and notebook:trust command-link handlers lets a Trust de
jupyterlab is an extensible environment for interactive and reproducible computing, based on the Jupyter Notebook Archit
Allowlist/blocklist enforcement in JupyterLab's PyPIExtensionManager.install() was silently bypassed due to a missing 'a
EUVD-2026-57796
GHSA-fpf6-h6p9-9rjr
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB