CVE-2026-102904: JupyterLab: Argument injection in JupyterLab extension uninstall exposes server-readable files and internal URLs
JupyterLab’s PyPI extension manager runs python -m pip uninstall with the extension name taken from the request body. ExtensionHandler.post validates the name for cmd=install but not for cmd=uninstall, so a name that begins with - reaches the command line and pip reads it as an option rather than as a package.
cmdline = [
sys.executable,
"-m",
"pip",
"uninstall",
"--yes",
"--no-input",
extension,
]
An extension name of the form -r followed by a path therefore made pip open that path as a requirements file. pip’s parse error quotes the line it could not read and names the file it came from, and JupyterLab returned that error in the response body, so the line reached the requester.
This has security implications only for deployments that combine all of the following:
- the (default) PyPI Extension Manager enabled, so that uninstall requests reach pip;
- an authenticated account permitted to call the extension API; and
- kernels and terminals disabled or delegated to remote hosts (otherwise a user with kernel access can read the same files and make the same outbound requests directly, regardless of this endpoint)
References
- github.com/advisories/GHSA-3325-v43h-43rv
- github.com/jupyterlab/jupyterlab/commit/9e1951e57da499ca66ef5e0caf68e71ad2e3d1a5
- github.com/jupyterlab/jupyterlab/commit/a274a8276b9185d03efd4c3c20713d3137ac49e6
- github.com/jupyterlab/jupyterlab/commit/e277bc958e737130ac47b6c5078d08b29298828f
- github.com/jupyterlab/jupyterlab/releases/tag/v4.5.11
- github.com/jupyterlab/jupyterlab/releases/tag/v4.6.4
- github.com/jupyterlab/jupyterlab/security/advisories/GHSA-3325-v43h-43rv
- nvd.nist.gov/vuln/detail/CVE-2026-102904
Code Behaviors & Features
Detect and mitigate CVE-2026-102904 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →