Project JupyterのJupyter Serverにおけるアンカーのない正規表現に関する脆弱性
タイトル Project JupyterのJupyter Serverにおけるアンカーのない正規表現に関する脆弱性
概要

Jupyter ServerはJupyterウェブアプリケーションのバックエンドです。バージョン2.17.0以前では、Originヘッダーの検証にPythonのre.match()を使用して、allow_origin_pat設定値と照合していました。しかしre.match()は文字列の先頭のみをアンカーとして完全一致を要求しないため、信頼されたドメイン(例:trusted.example.com)のみをマッチさせるつもりのパターンでも、そのドメインで始まり追加の文字列が続く起源(例:trusted.example.com.evil.com)にもマッチしてしまいます。攻撃者がそのようなドメインを制御している場合、CORSの起源制限を回避して、信頼されていないサイトからJupyter Server APIへのクロスオリジンリクエストを行うことが可能になります。この問題はバージョン2.18.0で修正されました。

想定される影響 当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 また、当該ソフトウェアが扱う全ての情報が書き換えられる可能性があります。 さらに、当該ソフトウェアは停止しません。 そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。 
対策

正式な対策が公開されています。ベンダ情報を参照して適切な対策を実施してください。

公表日 2026年5月5日0:00
登録日 2026年5月12日10:19
最終更新日 2026年5月12日10:19
CVSS3.0 : 重要
スコア 7.3
ベクター CVSS:3.0/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:N
影響を受けるシステム
Project Jupyter
Jupyter Server 2.18.0 未満
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
ベンダー情報
その他
変更履歴
No 変更内容 変更日
1 [2026年05月12日]
  掲載
2026年5月12日10:19

NVD脆弱性情報
CVE-2026-40110
概要

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.

公表日 2026年5月6日7:16
登録日 2026年5月7日4:07
最終更新日 2026年5月11日21:59
影響を受けるソフトウェアの構成
構成1 以上 以下 より上 未満
cpe:2.3:a:jupyter:jupyter_server:*:*:*:*:*:*:*:* 2.18.0
関連情報、対策とツール
共通脆弱性一覧