CVE-2026-40110: CWE-777: Regular Expression without Anchors in jupyter-server jupyter_server
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.
AI Analysis
Technical Summary
The vulnerability (CVE-2026-40110) in jupyter_server arises from improper use of Python's re.match() for Origin header validation against the allow_origin_pat configuration. Because re.match() only anchors at the start of the string, a pattern like 'trusted.example.com' will also match origins such as 'trusted.example.com.evil.com'. This flaw enables an attacker controlling such a domain to bypass CORS restrictions and make cross-origin requests to the Jupyter Server API. The vulnerability affects versions up to and including 2.17.0 and has been fixed in version 2.18.0.
Potential Impact
An attacker who controls a domain that starts with a trusted domain name can bypass the CORS origin restrictions on Jupyter Server API endpoints. This could allow unauthorized cross-origin requests from malicious sites, potentially leading to unauthorized actions or data exposure via the API. The CVSS 4.0 score is 7.6 (high severity), reflecting network attack vector, low attack complexity, and partial user interaction required.
Mitigation Recommendations
Upgrade jupyter_server to version 2.18.0 or later, where the Origin header validation has been corrected to properly anchor the regular expression and enforce full matches. Since this is a software vulnerability in a self-hosted product, patching by upgrading is the recommended and effective mitigation. Patch status is not explicitly stated but the fix is available in version 2.18.0.
CVE-2026-40110: CWE-777: Regular Expression without Anchors in jupyter-server jupyter_server
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 v4.0
Score 7.6high
Affected software
Weaknesses
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The vulnerability (CVE-2026-40110) in jupyter_server arises from improper use of Python's re.match() for Origin header validation against the allow_origin_pat configuration. Because re.match() only anchors at the start of the string, a pattern like 'trusted.example.com' will also match origins such as 'trusted.example.com.evil.com'. This flaw enables an attacker controlling such a domain to bypass CORS restrictions and make cross-origin requests to the Jupyter Server API. The vulnerability affects versions up to and including 2.17.0 and has been fixed in version 2.18.0.
Potential Impact
An attacker who controls a domain that starts with a trusted domain name can bypass the CORS origin restrictions on Jupyter Server API endpoints. This could allow unauthorized cross-origin requests from malicious sites, potentially leading to unauthorized actions or data exposure via the API. The CVSS 4.0 score is 7.6 (high severity), reflecting network attack vector, low attack complexity, and partial user interaction required.
Mitigation Recommendations
Upgrade jupyter_server to version 2.18.0 or later, where the Origin header validation has been corrected to properly anchor the regular expression and enforce full matches. Since this is a software vulnerability in a self-hosted product, patching by upgrading is the recommended and effective mitigation. Patch status is not explicitly stated but the fix is available in version 2.18.0.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- GitHub_M
- Date Reserved
- 2026-04-09T01:41:38.536Z
- Cvss Version
- 4.0
- State
- PUBLISHED
- Remediation Level
- null
Threat ID: 69fa665ccbff5d861029ec6f
Added to database: 5/5/2026, 9:51:24 PM
Last enriched: 5/13/2026, 3:39:41 AM
Last updated: 6/20/2026, 8:40:25 AM
Views: 90
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.