CVE-2026-73626 json
JupyterLab before 4.6.2 Authentication Bypass via PyPIExtensionManager
published 2026-07-22 3 mo ago modified 2026-09-25 44 d ago also BIT-jupyterlab-2026-73626 , EUVD-2026-57795 , GHSA-whvh-wf3x-g77j
- cvss
- 7.5
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.4%
- EPSS 0.4% chance of exploitation in 30 days, percentile 30%
- public exploits
- 0
- none known
Summary
JupyterLab versions >=4.6.0,<=4.6.1 and <=4.5.9 contain an allowlist/blocklist enforcement gap in PyPIExtensionManager.install(). A missing 'await' caused the is_install_allowed coroutine to never execute, so the extension allowlist/blocklist check was not enforced for direct callers of install(). The stock JupyterLab HTTP API and Extension Manager UI are not affected, as they perform a separate, correctly awaited check. The issue affects only deployments where a custom extension or downstream integration imports PyPIExtensionManager and calls install() directly with a package name influenced by untrusted input, an allowlist/blocklist is configured, the PyPI Extension Manager is enabled, and kernels and terminals are disabled or delegated to remote hosts. Fixed in JupyterLab 4.6.2 and 4.5.10.
Patch / fix
- pypi jupyterlab 4.5.10, 4.6.2
- bitnami jupyterlab 4.5.10, 4.6.2
- jupyterlab jupyterlab 4.5.10, 4.6.1
- jupyterlab Debian 14 4.4.10+ds1+~3.1.0+~0.16.6+~cs1.4.4-4
debian advisories DEBIAN-CVE-2026-73626
- python-jupyterlab openSUSE Tumbleweed 4.5.10-1.1
opensuse advisories openSUSE-SU-2026:11634-1
- github.com/jupyterlab/jupyterlab@be9303f commit
- github.com/jupyterlab/jupyterlab@f1beab4 commit
- github.com/jupyterlab/jupyterlab#19184 pull request
- github.com/jupyterlab/jupyterlab#19185 pull request
- github.com/jupyterlab/jupyterlab#19186 pull request
- github.com/jupyterlab/jupyterlab/releases/tag/v4.5.10 release
- github.com/jupyterlab/jupyterlab/releases/tag/v4.6.2 release
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-73626 updated cvss 0.0
jupyterlab: JupyterLab: Extension allowlist bypass allows unauthorized installations
-
Red Hat Migration Toolkit for Applications 8 mta/mta-solution-server-rhel9affected: no fix planned “Out of support scope”
-
Red Hat OpenShift AI (RHOAI) rhoai/odh-feature-server-rhel9, rhoai/odh-th06-cpu-torch210-py312-rhel9, rhoai/odh-th06-cpu-torch291-py312-rhel9, rhoai/odh-th06-rocm64-torch291-py312-rhel9, rhoai/odh-th06-cuda130-torch210-py312-rhel9, rhoai/odh-th06-cuda130-torch291-py312-rhel9, +10 moreaffected: no fix available “Fix deferred”
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- 2 mo ago
Exploit prediction
0.36% chance of exploitation in the next 30 days, higher than 30% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 7.7 | CVSS:4.0/AV:N/AC:H/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N |
| CNA | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H |
| GitHub | 3.1 | 0.0 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:N |
| CNA | 4.0 | 7.7 | CVSS:4.0/AV:N/AC:H/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
| NVD | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | jupyterlab | >=4.6.0, <4.6.2 <4.5.10 |
4.6.2 4.5.10 |
| bitnami | jupyterlab | <4.5.10 >=4.6.0, <4.6.2 |
4.5.10 4.6.2 |
Affected products
- jupyterlab jupyterlab
Classification
References
-
github.com
/jupyterlab/jupyterlab/pull/19184
web
-
github.com
/jupyterlab/jupyterlab/pull/19185
web
-
github.com
/jupyterlab/jupyterlab/pull/19186
web
-
github.com
/jupyterlab/jupyterlab/commit/be9303f5bcd5308eaeae953c5a3c903046682c2c
web
-
github.com
/jupyterlab/jupyterlab/commit/f1beab4a2027af4719d6edc07d52d6cf5a39a432
web
-
github.com
/jupyterlab/jupyterlab/security/advisories/GHSA-whvh-wf3x-g77j
vendor-advisory, web
-
vulncheck.com
/advisories/jupyterlab-before-authentication-bypass-via-pypiextensionmanager
third-party-advisory, web
-
github.com
/jupyterlab/jupyterlab
package
-
github.com
/jupyterlab/jupyterlab/releases/tag/v4.5.10
web
-
github.com
/jupyterlab/jupyterlab/releases/tag/v4.6.2
web
-
nvd.nist.gov
/vuln/detail/CVE-2026-73626
web
Sources
- CVE List CVE-2026-73626
- GitHub Advisory GHSA-whvh-wf3x-g77j
- NVD CVE-2026-73626
- OSV BIT-jupyterlab-2026-73626
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.