CVE-2026-40110: CWE-777: Regular Expression without Anchors in jupyter-server jupyter_server
Jupyter Server versions 2.17.0 and earlier contain a vulnerability in the Origin header validation logic. The server uses Python's re.match() function with a pattern that is not fully anchored, allowing origins that start with a trusted domain but have additional characters appended to bypass CORS restrictions. This enables an attacker controlling such a domain to make unauthorized cross-origin requests to the Jupyter Server API. The issue is fixed in version 2.18.0.
AI Analysis
Technical Summary
In Jupyter Server versions up to 2.17.0, the Origin header validation relies on Python's re.match() against the allow_origin_pat configuration. Because re.match() only anchors at the start of the string and does not enforce a full match, a pattern intended to restrict access to a trusted domain (e.g., trusted.example.com) can be bypassed by origins that begin with that domain but include additional characters (e.g., trusted.example.com.evil.com). This flaw allows an attacker controlling such a domain to circumvent CORS origin restrictions and perform cross-origin requests to the Jupyter Server API. The vulnerability is tracked as CVE-2026-40110 and is fixed in version 2.18.0.
Potential Impact
An attacker who controls a domain that begins with a trusted domain name can bypass the CORS origin restrictions on Jupyter Server API endpoints. This can lead to unauthorized cross-origin requests, potentially exposing sensitive API functionality to untrusted origins. The CVSS 4.0 score is 7.6 (high severity), indicating significant impact with network attack vector, low attack complexity, and partial user interaction required.
Mitigation Recommendations
A fix is available in Jupyter Server version 2.18.0. Users should upgrade to version 2.18.0 or later to resolve this vulnerability. Until upgraded, carefully review and restrict the allow_origin_pat configuration to avoid patterns that can be partially matched. Patch status is confirmed fixed in 2.18.0 as per the CVE description and vendor advisory.
CVE-2026-40110: CWE-777: Regular Expression without Anchors in jupyter-server jupyter_server
Description
Jupyter Server versions 2.17.0 and earlier contain a vulnerability in the Origin header validation logic. The server uses Python's re.match() function with a pattern that is not fully anchored, allowing origins that start with a trusted domain but have additional characters appended to bypass CORS restrictions. This enables an attacker controlling such a domain to make unauthorized cross-origin requests to the Jupyter Server API. The issue is fixed in version 2.18.0.
CVSS v4.0
Score 7.6high
Affected software
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
In Jupyter Server versions up to 2.17.0, the Origin header validation relies on Python's re.match() against the allow_origin_pat configuration. Because re.match() only anchors at the start of the string and does not enforce a full match, a pattern intended to restrict access to a trusted domain (e.g., trusted.example.com) can be bypassed by origins that begin with that domain but include additional characters (e.g., trusted.example.com.evil.com). This flaw allows an attacker controlling such a domain to circumvent CORS origin restrictions and perform cross-origin requests to the Jupyter Server API. The vulnerability is tracked as CVE-2026-40110 and is fixed in version 2.18.0.
Potential Impact
An attacker who controls a domain that begins with a trusted domain name can bypass the CORS origin restrictions on Jupyter Server API endpoints. This can lead to unauthorized cross-origin requests, potentially exposing sensitive API functionality to untrusted origins. The CVSS 4.0 score is 7.6 (high severity), indicating significant impact with network attack vector, low attack complexity, and partial user interaction required.
Mitigation Recommendations
A fix is available in Jupyter Server version 2.18.0. Users should upgrade to version 2.18.0 or later to resolve this vulnerability. Until upgraded, carefully review and restrict the allow_origin_pat configuration to avoid patterns that can be partially matched. Patch status is confirmed fixed in 2.18.0 as per the CVE description and vendor advisory.
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
- Vendor Advisory Urls
- [{"url":"https://access.redhat.com/security/cve/CVE-2026-40110","vendor":"Red Hat"}]
Threat ID: 69fa665ccbff5d861029ec6f
Added to database: 05/05/2026, 21:51:24 UTC
Last enriched: 08/01/2026, 21:30:57 UTC
Last updated: 08/04/2026, 07:17:57 UTC
Views: 129
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.