jupyter-server — security advisory
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.
- Products
- jupyter-server
- Affected versions
- 1.13.1-1, 1.2.2-1, 1.23.3-1, 1.23.3-2, 2.14.2-5, 2.15.0-1, 2.17.0-1, 2.20.0-3
- Fixed versions
- Not specified
- CVEs
- CVE-2026-6657
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 31 Oct 2026, 03:13 UTC · Revision 1
Source evidence
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.
osv:UBUNTU-CVE-2026-6657
jupyter-server
Fixed versions: Not specified
jupyter-server
Fixed versions: Not specified
jupyter-server
Fixed versions: Not specified
jupyter-server
Fixed versions: Not specified
jupyter-server
Fixed versions: Not specified
Complete source record
{
"id": "a6847facfdf4768891dfbe65d97a50ab0761ac784033feec744da38f81eb06f9",
"url": "https://osv.dev/vulnerability/UBUNTU-CVE-2026-6657",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "UBUNTU-CVE-2026-6657",
"summary": "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.",
"evidence": "osv:UBUNTU-CVE-2026-6657",
"products": [
{
"name": {
"value": "jupyter-server",
"evidence": "/affected/0/package/name"
},
"prerequisites": [],
"fixed_versions": [],
"affected_versions": [
{
"value": "1.2.2-1",
"evidence": "/affected/0/versions"
},
{
"value": "1.13.1-1",
"evidence": "/affected/0/versions"
}
]
},
{
"name": {
"value": "jupyter-server",
"evidence": "/affected/1/package/name"
},
"prerequisites": [],
"fixed_versions": [],
"affected_versions": [
{
"value": "1.23.3-1",
"evidence": "/affected/1/versions"
},
{
"value": "1.23.3-2",
"evidence": "/affected/1/versions"
}
]
},
{
"name": {
"value": "jupyter-server",
"evidence": "/affected/2/package/name"
},
"prerequisites": [],
"fixed_versions": [],
"affected_versions": [
{
"value": "2.14.2-5",
"evidence": "/affected/2/versions"
},
{
"value": "2.15.0-1",
"evidence": "/affected/2/versions"
}
]
},
{
"name": {
"value": "jupyter-server",
"evidence": "/affected/3/package/name"
},
"prerequisites": [],
"fixed_versions": [],
"affected_versions": [
{
"value": "2.17.0-1",
"evidence": "/affected/3/versions"
},
{
"value": "2.20.0-3",
"evidence": "/affected/3/versions"
}
]
},
{
"name": {
"value": "jupyter-server",
"evidence": "/affected/4/package/name"
},
"prerequisites": [],
"fixed_versions": [],
"affected_versions": [
{
"value": "2.15.0-1",
"evidence": "/affected/4/versions"
},
{
"value": "2.17.0-1",
"evidence": "/affected/4/versions"
}
]
}
],
"severity": "high",
"structured": {
"id": "UBUNTU-CVE-2026-6657",
"aliases": [
"UBUNTU-CVE-2026-6657"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
},
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H"
},
{
"type": "Ubuntu",
"score": "medium"
}
],
"affected": [
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
}
]
}
],
"package": {
"name": "jupyter-server",
"purl": "pkg:deb/ubuntu/jupyter-server?arch=source&distro=jammy",
"ecosystem": "Ubuntu:22.04:LTS"
},
"versions": [
"1.2.2-1",
"1.13.1-1"
],
"database_specific": {
"source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-6657.json"
},
"ecosystem_specific": {
"binaries": [
{
"binary_name": "jupyter-server",
"binary_version": "1.13.1-1"
},
{
"binary_name": "python3-jupyter-server",
"binary_version": "1.13.1-1"
}
]
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
}
]
}
],
"package": {
"name": "jupyter-server",
"purl": "pkg:deb/ubuntu/jupyter-server?arch=source&distro=noble",
"ecosystem": "Ubuntu:24.04:LTS"
},
"versions": [
"1.23.3-1",
"1.23.3-2"
],
"database_specific": {
"source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-6657.json"
},
"ecosystem_specific": {
"binaries": [
{
"binary_name": "jupyter-server",
"binary_version": "1.23.3-2"
},
{
"binary_name": "python3-jupyter-server",
"binary_version": "1.23.3-2"
}
]
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
}
]
}
],
"package": {
"name": "jupyter-server",
"purl": "pkg:deb/ubuntu/jupyter-server?arch=source&distro=questing",
"ecosystem": "Ubuntu:25.10"
},
"versions": [
"2.14.2-5",
"2.15.0-1"
],
"database_specific": {
"source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-6657.json"
},
"ecosystem_specific": {
"binaries": [
{
"binary_name": "jupyter-server",
"binary_version": "2.15.0-1"
},
{
"binary_name": "python3-jupyter-server",
"binary_version": "2.15.0-1"
}
]
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
}
]
}
],
"package": {
"name": "jupyter-server",
"purl": "pkg:deb/ubuntu/jupyter-server?arch=source&distro=stonking",
"ecosystem": "Ubuntu:26.10"
},
"versions": [
"2.17.0-1",
"2.20.0-3"
],
"database_specific": {
"source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-6657.json"
},
"ecosystem_specific": {
"binaries": [
{
"binary_name": "jupyter-server",
"binary_version": "2.20.0-3"
},
{
"binary_name": "python3-jupyter-server",
"binary_version": "2.20.0-3"
}
]
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
}
]
}
],
"package": {
"name": "jupyter-server",
"purl": "pkg:deb/ubuntu/jupyter-server?arch=source&distro=resolute",
"ecosystem": "Ubuntu:26.04:LTS"
},
"versions": [
"2.15.0-1",
"2.17.0-1"
],
"database_specific": {
"source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-6657.json"
},
"ecosystem_specific": {
"binaries": [
{
"binary_name": "jupyter-server",
"binary_version": "2.17.0-1"
},
{
"binary_name": "python3-jupyter-server",
"binary_version": "2.17.0-1"
}
]
}
}
],
"modified": "2026-10-17T13:00:35.143332594Z",
"provider": "osv",
"upstream": [
"CVE-2026-6657"
],
"references": [
"https://ubuntu.com/security/CVE-2026-6657",
"https://www.cve.org/CVERecord?id=CVE-2026-6657",
"https://huntr.com/bounties/18f642db-3569-43b3-b58d-ff97be4b09d7"
]
},
"related_cves": [
{
"value": "CVE-2026-6657",
"evidence": "/upstream"
}
],
"security_relevant": true,
"severity_evidence": "/severity/1/score"
},
"source_id": "core-osv",
"document_id": 360710,
"published_at": "2026-06-03T16:16:00+00:00"
}