High severity · published May 5, 2026
CVE-2026-40110
jupyter-server CORS origin validation bypass via unanchored regex in allow_origin_pat
7.3
CVSS
0.3%
EPSS
No
On KEV
Description
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.
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:N
Attack vector
Network
Complexity
Low
Privileges
Low
User interaction
Required
Confidentiality
High
Integrity
High
Availability
None
Scope
Unchanged
Exploitation
Is it being used?
Exploit prediction (EPSS)0.3% · higher than 24% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
JU
jupyter_server · jupyter-server
<= 2.17.0 · source: vendor
JS
Jupyter Server · Jupyter
before 2.18.0 · source: NVD
RH
Red Hat Migration Toolkit for Applications 8.2 · Red Hat
All versions, or not specified · source: CISA
RH
Red Hat OpenShift AI (RHOAI) · Red Hat
All versions, or not specified · source: CISA
Affected product
JU
jupyter_server
jupyter-server
More from jupyter_server
8.8
CVE-2026-114135
Jupyter Server: Gateway WebSocket handler bypasses kernel execute authorization
8.8
CVE-2026-35397
jupyter-server path traversal allows access to sibling directories sharing root_dir name prefix
7.1
CVE-2026-86049
Jupyter Server: 5xx request logging leaks token-bearing Referer header values
6.8
CVE-2026-40934
jupyter-server authentication cookies remain valid after password reset due to static cookie secret
6.1
CVE-2025-61669
jupyter_server next parameter open redirect can redirect users to external domains