CVE-2026-6657

CORS Origin Validation Bypass in jupyter-server

Published Jun 3, 2026 CVSS 3.1 · 8.8 High EPSS 5.2% KEV · Not listed
Description
A vulnerability in jupyter-server versions 1.12.0 through 2.17.0 allows an attacker to bypass CORS origin validation when the `allow_origin_pat` configuration is used. The issue arises from the use of `re.match()` for validating the `Origin` header, which only anchors at the start of the string. This allows attacker-controlled domains such as `trusted.example.com.evil.com` to pass validation against patterns intended to match `trusted.example.com`. The vulnerability affects multiple locations in the codebase, including CORS headers, WebSocket connections, referer validation, and login redirects, potentially enabling phishing attacks, arbitrary code execution, and unauthorized access to sensitive API responses.

Analysis

AI-generated

Technical impact

The flaw is a CORS origin‑validation bypass that occurs when jupyter‑server uses the allow_origin_pat configuration. The underlying weakness involves CWE‑346: trusted content perceived equivocation, because re.match() only anchors at the start of the string, permitting attacker‑controlled domains such as trusted.example.com.evil.com to pass the check intended for trusted.example.com. Additionally, the vulnerability includes CWE‑625: improper input validation, as the server fails to validate the entire input with a full match, allowing malicious Origin headers to be accepted. This allows malicious sites to craft Origin headers that the server accepts, enabling phishing, unauthorized API access, and potentially triggering arbitrary code execution through cross‑site request forgery or other downstream logic.

Affected Systems

All Ubuntu, Windows, macOS or other platforms that run jupyter‑server versions 1.12.0 through 2.17.0 are affected. The vulnerability concerns the Jupyter team’s jupyter‑server package; no specific operating system restrictions apply beyond normal deployment environments.

Risk and Exploitability

The CVSS score of 8.8 indicates high severity, and the EPSS score of 6% indicates the exploitation probability being moderate but nonzero. The vulnerability is not listed in CISA’s KEV catalog. The likely attack vector is remote HTTP or WebSocket requests that set a malicious Origin header; any external domain can exploit the bug by sending crafted requests that satisfy the allow_origin_pat regex. If unmitigated, attackers could conduct phishing campaigns, retrieve sensitive API data, or exploit downstream execution paths that depend on trusted origins.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade jupyter‑server to the latest release where the allow_origin_pat regex matching is corrected to anchor both ends of the pattern.
  • If an upgrade cannot be performed immediately, remove or disable the allow_origin_pat configuration or tighten the regular expression so that it does not permit subdomain suffixes such as .evil.com.
  • Deploy a network‑level proxy rule that strips or rewrites suspicious Origin headers before they reach jupyter‑server, ensuring that only validated origins are forwarded.

Generated by OpenCVE AI on October 25, 2026 at 19:19 UTC.

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Github GHSA Github GHSA GHSA-v42x-x7jp-845h Duplicate Advisory: jupyter-server is vulnerable to CORS origin validation bypass when the `allow_origin_pat` configuration is used
History
Type Values Removed Values Added
Weaknesses CWE-625
References
Metrics threat_severity

None

cvssV3_1

{'score': 6.1, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N'}

threat_severity

Moderate

Type Values Removed Values Added
First Time appeared Jupyter
Jupyter jupyter Server
Vendors & Products Jupyter
Jupyter jupyter Server
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
Description A vulnerability in jupyter-server versions 1.12.0 through 2.17.0 allows an attacker to bypass CORS origin validation when the `allow_origin_pat` configuration is used. The issue arises from the use of `re.match()` for validating the `Origin` header, which only anchors at the start of the string. This allows attacker-controlled domains such as `trusted.example.com.evil.com` to pass validation against patterns intended to match `trusted.example.com`. The vulnerability affects multiple locations in the codebase, including CORS headers, WebSocket connections, referer validation, and login redirects, potentially enabling phishing attacks, arbitrary code execution, and unauthorized access to sensitive API responses.
Title CORS Origin Validation Bypass in jupyter-server
Weaknesses CWE-346
References
Metrics cvssV3_0

{'score': 6.1, 'vector': 'CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N'}

Weaknesses
  • CWE-346

    Origin Validation Error

  • CWE-625

    Permissive Regular Expression

Sources

Status
PUBLISHED
Assigner
@huntr_ai
Published
Updated
Jun 3, 2026, 5:25 PM
Reserved
Apr 20, 2026, 8:13 AM
Status
Analyzed
Published
Jun 3, 2026, 4:16 PM
Modified
Jul 21, 2026, 7:10 PM
Severity
Moderate
Public date
Jun 3, 2026, 3:06 PM