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.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| jupyter | jupyter/jupyter | unspecified – ≤ latest | — |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | jupyter-server | No fix yet | — |
| Debian 13 | jupyter-server | No fix yet | — |
| Debian 12 | jupyter-server | No fix yet | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 26.10 | jupyter-server | No fix yet | — |
| Ubuntu 26.04 LTS | jupyter-server | No fix yet | — |
| Ubuntu 25.10 | jupyter-server | No fix yet | — |
| Ubuntu 24.04 LTS | jupyter-server | No fix yet | — |
| Ubuntu 22.04 LTS | jupyter-server | No fix yet | — |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| PyPI | jupyter-server | >= 1.12.0, <= 2.17.0 | — | PYSEC-2026-3472 |