Skip to content
Heist/ feed
Back to feed
High

jupyterlab — security advisory

Type: advisorySources: OSVAdvisory ID: UBUNTU-CVE-2026-73626

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.

Products
jupyterlab
Affected versions
4.0.11+ds1+~cs11.25.27-7, 4.0.11+ds1+~cs11.25.27-8, 4.0.11+ds1+~cs11.25.27-9, 4.4.10+ds1+~3.1.0+~0.16.6+~cs1.4.4-3, 4.4.10+ds1+~3.1.0+~0.16.6+~cs1.4.4-4
Fixed versions
Not specified
CVEs
CVE-2026-73626
Confirmed fixed CVEs
Not specified
Updated in this feed
31 Oct 2026, 03:16 UTC · Revision 1

Source evidence

UBUNTU-CVE-2026-73626

core-osv · Original source

Published 13 Aug 2026, 12:17 UTC

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.

osv:UBUNTU-CVE-2026-73626

jupyterlab

Fixed versions: Not specified

jupyterlab

Fixed versions: Not specified

Complete source record
{
  "id": "d0939769cb07858c13400a89aefe2471dbba2518b2f30abc862600ffd82f2806",
  "url": "https://osv.dev/vulnerability/UBUNTU-CVE-2026-73626",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "UBUNTU-CVE-2026-73626",
    "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.",
    "evidence": "osv:UBUNTU-CVE-2026-73626",
    "products": [
      {
        "name": {
          "value": "jupyterlab",
          "evidence": "/affected/0/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": [
          {
            "value": "4.0.11+ds1+~cs11.25.27-9",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "4.4.10+ds1+~3.1.0+~0.16.6+~cs1.4.4-3",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "4.4.10+ds1+~3.1.0+~0.16.6+~cs1.4.4-4",
            "evidence": "/affected/0/versions"
          }
        ]
      },
      {
        "name": {
          "value": "jupyterlab",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": [
          {
            "value": "4.0.11+ds1+~cs11.25.27-7",
            "evidence": "/affected/1/versions"
          },
          {
            "value": "4.0.11+ds1+~cs11.25.27-8",
            "evidence": "/affected/1/versions"
          },
          {
            "value": "4.0.11+ds1+~cs11.25.27-9",
            "evidence": "/affected/1/versions"
          }
        ]
      }
    ],
    "severity": "high",
    "structured": {
      "id": "UBUNTU-CVE-2026-73626",
      "aliases": [
        "UBUNTU-CVE-2026-73626"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H"
        },
        {
          "type": "CVSS_V4",
          "score": "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"
        },
        {
          "type": "Ubuntu",
          "score": "medium"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                }
              ]
            }
          ],
          "package": {
            "name": "jupyterlab",
            "purl": "pkg:deb/ubuntu/jupyterlab?arch=source&distro=stonking",
            "ecosystem": "Ubuntu:26.10"
          },
          "versions": [
            "4.0.11+ds1+~cs11.25.27-9",
            "4.4.10+ds1+~3.1.0+~0.16.6+~cs1.4.4-3",
            "4.4.10+ds1+~3.1.0+~0.16.6+~cs1.4.4-4"
          ],
          "database_specific": {
            "source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-73626.json"
          },
          "ecosystem_specific": {
            "binaries": [
              {
                "binary_name": "jupyterlab",
                "binary_version": "4.4.10+ds1+~3.1.0+~0.16.6+~cs1.4.4-4"
              }
            ]
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                }
              ]
            }
          ],
          "package": {
            "name": "jupyterlab",
            "purl": "pkg:deb/ubuntu/jupyterlab?arch=source&distro=resolute",
            "ecosystem": "Ubuntu:26.04:LTS"
          },
          "versions": [
            "4.0.11+ds1+~cs11.25.27-7",
            "4.0.11+ds1+~cs11.25.27-8",
            "4.0.11+ds1+~cs11.25.27-9"
          ],
          "database_specific": {
            "source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-73626.json"
          },
          "ecosystem_specific": {
            "binaries": [
              {
                "binary_name": "jupyterlab",
                "binary_version": "4.0.11+ds1+~cs11.25.27-9"
              }
            ]
          }
        }
      ],
      "modified": "2026-10-17T13:01:04.071388931Z",
      "provider": "osv",
      "upstream": [
        "CVE-2026-73626"
      ],
      "references": [
        "https://ubuntu.com/security/CVE-2026-73626",
        "https://www.cve.org/CVERecord?id=CVE-2026-73626",
        "https://github.com/jupyterlab/jupyterlab/security/advisories/GHSA-whvh-wf3x-g77j",
        "https://www.vulncheck.com/advisories/jupyterlab-before-authentication-bypass-via-pypiextensionmanager"
      ]
    },
    "related_cves": [
      {
        "value": "CVE-2026-73626",
        "evidence": "/upstream"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/1/score"
  },
  "source_id": "core-osv",
  "document_id": 360926,
  "published_at": "2026-08-13T12:17:00+00:00"
}