SA-26-019 High

Jupyter: Jupyter Server has a CORS Origin Validation Bypass via `re.match()` in `allow_origin_pat`

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

  1. If someone in your organization installed and runs Jupyter, that person should handle this flaw.
  2. That person should update Jupyter Server to version 2.18.0 or later, which fixes this flaw.
  3. If an IT provider or vendor runs Jupyter for your organization, send them this advisory and ask when the update to version 2.18.0 will be done.
  4. Until the update is in place, treat any Jupyter Server at version 2.17.0 or 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.

Sources

MORE ADVISORIES

See all