GHSA-24qx-w28j-9m6p

Suggest an improvement
Source
https://github.com/advisories/GHSA-24qx-w28j-9m6p
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/05/GHSA-24qx-w28j-9m6p/GHSA-24qx-w28j-9m6p.json
JSON Data
https://api.osv.dev/v1/vulns/GHSA-24qx-w28j-9m6p
Aliases
Downstream
CGA (4)
Published
2026-05-05T16:54:31Z
Modified
2026-09-10T03:50:45Z
Severity
  • 7.6 (High) CVSS_V4 - CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:L/SC:L/SI:L/SA:L CVSS Calculator
Summary
Jupyter Server has a CORS Origin Validation Bypass via `re.match()` in `allow_origin_pat`
Details

Jupyter Server uses re.match() to validate the Origin header against the allow_origin_pat configuration.

Since re.match() only anchors at the start of the string, an attacker who controls a domain like http://trusted.example.com.evil.com/ passes validation against a pattern intended to match only trusted.example.com.

Impact

<=2.17.0

Patches

057869a327c46730afede3eab0ca2d2e3e74acea, 49b34392feaa97735b3b777e3baf8f22f2a14ed8

Workarounds

Wrap your allow_origin_pat value with ^ and $

References

https://github.com/jupyter-server/jupyter_server/pull/603 https://docs.python.org/3/library/re.html#re.fullmatch https://docs.python.org/3/library/re.html#re.match

Database specific
{
    "cwe_ids":  [
        "CWE-625",
        "CWE-777"
    ],
    "github_reviewed":  true,
    "github_reviewed_at":  "2026-05-05T16:54:31Z",
    "nvd_published_at":  "2026-05-05T22:16:00Z",
    "severity":  "HIGH"
}
References

Affected packages

PyPI / jupyter-server

Package

Name
jupyter-server
View open source insights on deps.dev
Purl
pkg:pypi/jupyter-server

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0 Unknown introduced version / All previous versions are affected
Fixed
2.18.0

Affected versions

0.*
0.0.0
0.0.1
0.0.2
0.0.3
0.0.4
0.0.5
0.1.0
0.1.1
0.2.0
0.2.1
0.3.0
1.*
1.0.0rc0
1.0.0rc1
1.0.0rc2
1.0.0rc3
1.0.0rc4
1.0.0rc5
1.0.0rc6
1.0.0rc7
1.0.0rc8
1.0.0rc9
1.0.0rc10
1.0.0rc11
1.0.0rc12
1.0.0rc13
1.0.0rc14
1.0.0rc15
1.0.0rc16
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
1.0.7
1.0.8
1.0.9
1.0.10
1.0.11
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.2.0
1.2.1
1.2.2
1.2.3
1.3.0
1.4.0
1.4.1
1.5.0
1.5.1
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.7.0a1
1.7.0a2
1.7.0
1.8.0
1.9.0
1.10.0
1.10.1
1.10.2
1.11.0
1.11.1
1.11.2
1.12.0
1.12.1
1.13.0
1.13.1
1.13.2
1.13.3
1.13.4
1.13.5
1.15.0
1.15.1
1.15.2
1.15.3
1.15.4
1.15.5
1.15.6
1.16.0
1.17.0
1.17.1
1.18.0
1.18.1
1.19.0
1.19.1
1.21.0
1.23.0
1.23.1
1.23.2
1.23.3
1.23.4
1.23.5
1.23.6
1.24.0
2.*
2.0.0a0
2.0.0a1
2.0.0a2
2.0.0b0
2.0.0b1
2.0.0rc0
2.0.0rc1
2.0.0rc2
2.0.0rc3
2.0.0rc4
2.0.0rc5
2.0.0rc6
2.0.0rc7
2.0.0rc8
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.0.5
2.0.6
2.0.7
2.1.0
2.2.0
2.2.1
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
2.7.1
2.7.2
2.7.3
2.8.0
2.9.0
2.9.1
2.10.0
2.10.1
2.11.0
2.11.1
2.11.2
2.12.0
2.12.1
2.12.2
2.12.3
2.12.4
2.12.5
2.13.0
2.14.0
2.14.1
2.14.2
2.15.0
2.16.0
2.17.0

Database specific

last_known_affected_version_range
"<= 2.17.0"
source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/05/GHSA-24qx-w28j-9m6p/GHSA-24qx-w28j-9m6p.json"