Jupyter: Jupyter Server has a CORS Origin Validation Bypass via `re.match()` in `allow_origin_pat`
Jupyter
More for Jupyter RSS feed for Jupyter
- Severity
- High, CVSS 7.3
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:N
- Record
- CVE-2026-40110
- Affects
- Jupyter
- Known exploited
- Not listed in the CISA Known Exploited Vulnerabilities catalog
- Published
- Record first published by the source
- May 5, 2026
- Source last modified
- July 31, 2026
Description
Jupyter Server is the backend for Jupyter web applications. In versions 2.17.0 and earlier, the Origin header validation uses Python's re.match() to check incoming origins against the allow_origin_pat configuration value. Because re.match() only anchors at the start of the string and does not require a full match, a pattern intended to match only a trusted domain (e.g., trusted.example.com) will also match any origin that begins with that domain followed by additional characters (e.g., trusted.example.com.evil.com). An attacker who controls such a domain can bypass the CORS origin restriction and make cross-origin requests to the Jupyter Server API from an untrusted site. This issue has been fixed in version 2.18.0.
Description quoted from the NVD record.
Who is affected
Jupyter (also called Jupyter Server) is a web-based workspace where people write and run code alongside notes. This flaw affects Jupyter Server versions 2.17.0 and earlier, in setups that use the setting listing which other websites may talk to the server. The check on that setting only compares the start of a web address, so an address made of a trusted name with extra text added on the end also passes. An attacker who controls such an address can get past this restriction and send requests to the server from an untrusted website. This flaw is rated High.
What to do
- If someone in your organization installed and runs Jupyter, that person should handle this flaw.
- That person should update Jupyter Server to version
2.18.0or later, which fixes this flaw. - If an IT provider or vendor runs Jupyter for your organization, send them this advisory and ask when the update to version
2.18.0will be done. - Until the update is in place, treat any Jupyter Server at version
2.17.0or earlier as affected, especially one set up to let other websites talk to it.
Analysis written from the source record as of July 31, 2026 and reviewed before publishing.