jupyter-server CORS origin validation bypass via unanchored regex in allow_origin_pat
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- Passive
- Attack complexity
- Low
- Attack requirements
- Present
- Impact type
- —
- Confidentiality · integrity · availability
- High · High · Low
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA, GitHub and Red Hat.
Summary
Jupyter Server is the backend for Jupyter web applications. In versions 2.17.0 and earlier, the Origin header validation uses Python's re.match() to check incoming origins against the allow_origin_pat configuration value. Because re.match() only anchors at the start of the string and does not require a full match, a pattern intended to match only a trusted domain (e.g., trusted.example.com) will also match any origin that begins with that domain followed by additional characters (e.g., trusted.example.com.evil.com). An attacker who controls such a domain can bypass the CORS origin restriction and make cross-origin requests to the Jupyter Server API from an untrusted site. This issue has been fixed in version 2.18.0.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| jupyterlab | jupyter_server | up to 2.17.0 | — | No fix listed | CNA |
| — | jupyter-server (PyPI) | before 2.18.0 | 2.18.0 | Patch available | GHSA-24qx-w28j-9m6p |
- jupyter_server Vendorjupyterlab Affected up to 2.17.0 Fixed in — No fix listed CNA
- jupyter-server (PyPI) Vendor— Affected before 2.18.0 Fixed in 2.18.0 Patch available GHSA-24qx-w28j-9m6p
CPE configurations NVD · 1
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:jupyter:jupyter_server:*:*:*:*:*:*:*:* | before 2.18.0 | Vulnerable | jupyterlab |
- cpe:2.3:a:jupyter:jupyter_server:*:*:*:*:*:*:*:* Versions before 2.18.0 Vulnerable ·jupyterlab
Remediation
- Fix · GHSA-24qx-w28j-9m6p jupyter-server (PyPI) Fixed in 2.18.0 Advisory →
Red Hat 2 advisories
- RHSA-2026:73987 Released 2026-09-30 · Red Hat rating CriticalRHOAI 3.3.7 - Red Hat OpenShift AI
- Red Hat OpenShift AI 3.3 registry.redhat.io/rhoai/odh-built-in-detector-rhel9, registry.redhat.io/rhoai/odh-dashboard-rhel9, registry.redhat.io/rhoai/odh-data-science-pipelines-argo-argoexec-rhel9 +47
- RHSA-2026:43038 Released 2026-07-21 · Red Hat rating CriticalMigration Toolkit for Applications
- Red Hat Migration Toolkit for Applications 8.2 registry.redhat.io/mta/mta-cli-rhel9, registry.redhat.io/mta/mta-solution-server-rhel9
Vendor assessments
Red Hat
Red Hat rating: Important. Red Hat's page for this CVE →
| Product | Status | Plan or fix |
|---|---|---|
| Red Hat Migration Toolkit for Applications 8.2 | Fixed | RHSA-2026:43038 |
| Red Hat OpenShift AI 3.3 | Fixed | RHSA-2026:73987 |
Not affected: 2 products
- Red Hat Migration Toolkit for Applications 8.2
- Red Hat OpenShift AI 3.3
Timeline
- 2026-10-02 Threatist record created from CVE-2026-40110
- 2026-10-03 Alias added: GHSA-24qx-w28j-9m6p
- 2026-10-07 Fix available: RHSA-2026:73987 · Red Hat
References
Patch 3
Other 7
- https://github.com/jupyter-server/jupyter_server/pull/603
- https://access.redhat.com/errata/RHSA-2026:43038
- https://access.redhat.com/security/cve/CVE-2026-40110
- https://bugzilla.redhat.com/show_bug.cgi?id=2466912
- https://github.com/jupyter-server/jupyter_server
- https://github.com/pypa/advisory-database/tree/main/vulns/jupyter-server/PYSEC-2026-2187.yaml
- https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-40110.json
More jupyterlab Jupyter Server vulnerabilities
- TI-2026-05842 CORS Origin Validation Bypass in jupyter-server CVSS 3.1HIGH 8.8
- TI-2026-04748 Path Traversal in jupyter/jupyter CVSS 3.1HIGH 8.1
- TI-2026-27533 jupyter-server path traversal allows access to sibling directories sharing root_dir name prefix CVSS 4.0HIGH 7.6
- TI-2025-38102 jupyter_server next parameter open redirect can redirect users to external domains CVSS 4.0MEDIUM 6.3
- TI-2026-32614 Jupyter Server: Stored XSS in `NbconvertFileHandler` / `NbconvertPostHandler` via missing `sandbox` CSP CVSS 4.0CRITICAL 9.3
- TI-2024-23252 Jupyter server on Windows discloses Windows user password hash CVSS 3.1HIGH 7.5
Sources
- CVE-2026-40110 · CVE Program
- CVE-2026-40110 · NVD
- FIRST EPSS
- GHSA-24qx-w28j-9m6p · GitHub Advisory Database · CC BY 4.0
- CVE-2026-40110 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences