脆弱性対応ウォッチ重大・クリティカル脆弱性のクラウド別対応まとめ
最新更新履歴CriticalHigh回避策のみパッチありAWSGCPAzureLinux
Critical CVSS 9.0
CVE-2026-54527

JupyterLab Git のリネーム差分表示に XSS(CVSS 9.0)

情報取得日: 2026/07/08/最終確認: 2026/08/01・本ページは公開情報の非公式まとめです

CVE IDCVE-2026-54527
製品Jupyter / jupyterlab-git 0.30.0b3 以上 0.54.0 未満
CVSS9.0(Critical)
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H
種別 (CWE)CWE-79(クロスサイトスクリプティング)
登録/公開日2026/07/08
出典https://nvd.nist.gov/vuln/detail/CVE-2026-54527

概要

jupyterlab-git は JupyterLab から Git を操作するための拡張機能である。コミット履歴を見たり差分を表示したりする用途で、データ分析や機械学習の現場では標準的に入っている。 欠陥は、コミット履歴タブでファイル名が変更された(リネームされた)差分を描画する部分にある。0.30.0b3 以上 0.54.0 未満のバージョンで、`PlainTextDiff.ts` の `createHeader()` が Git から受け取ったファイル名を**そのまま `innerHTML` に渡していた**。ファイル名は Git の管理下にある文字列であって、開発者が自由に決められる。したがって、細工したファイル名を含むコミットがリポジトリに入っていると、そのリネーム差分を Git History タブで開いた時点で、ファイル名に埋め込まれた JavaScript が実行される。 実行される場所は被害者の JupyterLab のページ内である。JupyterLab は notebook の実行を通じてサーバ側でコードを走らせられるので、ページ内で任意のスクリプトが動くということは、そこから notebook API を叩いてサーバ上でコードを実行するところまでつながりうる。XSS が単にブラウザの話で終わらないのが、この種のツールの厄介なところである。 NVD の CVSS 3.1 基本値は 9.0(AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H)で Critical。**低い権限が必要(PR:L)で利用者の操作を要する(UI:R)**が、**スコープ変更(S:C)**が付いており、影響が JupyterLab のフロントエンドの外へ出ることを示している。GitHub Security Advisory(GHSA-f962-v9hr-pfg5)側は CVSS 4.0 で 9.3 CRITICAL としている。 起点になるのは「他人が用意したリポジトリを自分の JupyterLab で開き、その履歴を見る」という動作である。共有の JupyterHub で複数人が同じリポジトリを扱う環境、外部から受け取ったリポジトリを解析する環境、pull request のレビューを JupyterLab 上で行う運用は、いずれもこの経路に当たる。 修正は 0.54.0 で入っている。NVD の版レンジは 0.30.0b3 / 0.30.0 と、0.30.1 以上 0.54.0 未満。NVD 公開日は2026年7月8日、最終更新は7月15日、vulnStatus は Analyzed。2026年8月3日時点で CISA KEV カタログには収載されていない。

クラウド/OS 別の対応状況

各ベンダー公式アドバイザリで確認できた事実に基づき整理しています。確認できていない項目は「情報確認中」と明記し、存在しないパッチ番号・バージョンは記載しません。

AWS / GCP / Azure / Linux いずれも対応区分は同じです: パッチあり(アプリ更新) 下の表は環境ごとの補足です。
環境対応状況対応方法・備考
AWS (ECS/EC2) パッチあり(アプリ更新)
SageMaker Studio / EC2 上の JupyterLab で jupyterlab-git を 0.54.0 以降へ更新する
SageMaker のライフサイクル設定でインストールしている場合は、その設定側の版指定を直さないと再起動のたびに古い版に戻る。共有環境ではイメージの作り直しまでを対応と考える。
参照リンク
GCP パッチあり(アプリ更新)
Vertex AI Workbench / GKE 上の JupyterLab で jupyterlab-git を 0.54.0 以降へ更新する
Workbench のインスタンスはイメージ更新でも上がるが、ユーザーが pip で個別に入れている版が残ることがある。インスタンス側で pip show を実行して実際の版を確認する。
参照リンク
Azure パッチあり(アプリ更新)
Azure Machine Learning のコンピューティングインスタンス等で jupyterlab-git を 0.54.0 以降へ更新する
カスタム環境(Environment)に焼き込んでいる場合は環境定義の更新が必要。共有コンピューティングは利用者全員が同じ版を使うため、更新の効果が大きい。
参照リンク
Linux パッチあり(アプリ更新)
pip install -U jupyterlab-git で 0.54.0 以降へ更新し、JupyterLab を再起動する。更新までは素性の分からないリポジトリの Git History タブを開かない
JupyterHub で配っている場合はイメージを作り直す。一時的に jupyter labextension disable @jupyterlab/git で無効化する選択肢もある。
参照リンク

解決の方向性(パッチ/回避策/代替)

まず自分の環境の版を確認する。`pip show jupyterlab-git` または `pip list | grep jupyterlab-git` で出る。conda で入れているなら `conda list jupyterlab-git`。0.54.0 より前なら対象である。JupyterHub でイメージを配っている場合は、**イメージの中の版**を見ること。手元の開発環境だけ上げてもイメージが古ければ利用者は古いままである。 恒久対応は **0.54.0 以降へ更新する**ことである。`pip install -U jupyterlab-git` の後、JupyterLab を再起動する。JupyterHub や Binder のようにイメージから起動する構成では、イメージを作り直して配り直すところまでが対応になる。 更新までの緩和策は、**素性の分からないリポジトリの Git History タブを開かない**ことである。この欠陥はリネーム差分を表示したときに発火するので、履歴を見る必要があるなら JupyterLab ではなく `git log --stat` や `git show` をターミナルで使えば影響を受けない。共有環境なら、拡張機能を一時的に無効化する(`jupyter labextension disable @jupyterlab/git`)判断もある。 検知は難しいが、手掛かりはある。1つは、リポジトリ側で異常なファイル名を探すことで、`git log --diff-filter=R --name-only` で過去のリネームを一覧し、`<` や `"` を含むファイル名が無いかを見る。もう1つはサーバ側で、notebook を開いていないのに kernel が起動している、実行していないコードが走った形跡がある、といった痕跡を Jupyter のサーバログで確認する。共有環境では利用者ごとのトークンが盗まれている可能性があるので、侵害が疑われる場合はトークンの再発行を先に行う。 優先順としては、**複数人で共有している JupyterHub と、外部リポジトリを扱う解析環境**が先である。自分専用のローカル環境で自分のリポジトリしか開かないなら、実際の攻撃経路は成立しにくい。

よくある質問(CVE-2026-54527)

CVE-2026-54527(jupyterlab-git 0.30.0b3 以上 0.54.0 未満)の影響は?

Critical(CVSS 9.0)に分類されるJupyter jupyterlab-git 0.30.0b3 以上 0.54.0 未満の脆弱性です。jupyterlab-git は JupyterLab から Git を操作するための拡張機能である。コミット履歴を見たり差分を表示したりする用途で、データ分析や機械学習の現場では標準的に入っている。 欠陥は、コミット履歴タブでファイル名が変更された(リネームされた)差分を描画する部分にある。0.30.0b3 以上 0.54.0 未満のバージョンで、`PlainTextDiff.ts` の `createHeader()` が Git から受け取ったファイル名を**そのまま `innerHTML` に渡していた**。ファイル名は Git の管理下にある文字列であって、開発者が自由に決められる。したがって、細工したファイル名を含むコミットがリポジトリに入っていると、そのリネーム差分を Git History タブで開いた時点で、ファイル名に埋め込まれた JavaScript が実行される。 実行される場所は被害者の JupyterLab のページ内である。JupyterLab は notebook の実行を通じてサーバ側でコードを走らせられるので、ページ内で任意のスクリプトが動くということは、そこから notebook API を叩いてサーバ上でコードを実行するところまでつながりうる。XSS が単にブラウザの話で終わらないのが、この種のツールの厄介なところである。 NVD の CVSS 3.1 基本値は 9.0(AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H)で Critical。**低い権限が必要(PR:L)で利用者の操作を要する(UI:R)**が、**スコープ変更(S:C)**が付いており、影響が JupyterLab のフロントエンドの外へ出ることを示している。GitHub Security Advisory(GHSA-f962-v9hr-pfg5)側は CVSS 4.0 で 9.3 CRITICAL としている。 起点になるのは「他人が用意したリポジトリを自分の JupyterLab で開き、その履歴を見る」という動作である。共有の JupyterHub で複数人が同じリポジトリを扱う環境、外部から受け取ったリポジトリを解析する環境、pull request のレビューを JupyterLab 上で行う運用は、いずれもこの経路に当たる。 修正は 0.54.0 で入っている。NVD の版レンジは 0.30.0b3 / 0.30.0 と、0.30.1 以上 0.54.0 未満。NVD 公開日は2026年7月8日、最終更新は7月15日、vulnStatus は Analyzed。2026年8月3日時点で CISA KEV カタログには収載されていない。

CVE-2026-54527 の対応方法・回避策は?

まず自分の環境の版を確認する。`pip show jupyterlab-git` または `pip list | grep jupyterlab-git` で出る。conda で入れているなら `conda list jupyterlab-git`。0.54.0 より前なら対象である。JupyterHub でイメージを配っている場合は、**イメージの中の版**を見ること。手元の開発環境だけ上げてもイメージが古ければ利用者は古いままである。 恒久対応は **0.54.0 以降へ更新する**ことである。`pip install -U jupyterlab-git` の後、JupyterLab を再起動する。JupyterHub や Binder のようにイメージから起動する構成では、イメージを作り直して配り直すところまでが対応になる。 更新までの緩和策は、**素性の分からないリポジトリの Git History タブを開かない**ことである。この欠陥はリネーム差分を表示したときに発火するので、履歴を見る必要があるなら JupyterLab ではなく `git log --stat` や `git show` をターミナルで使えば影響を受けない。共有環境なら、拡張機能を一時的に無効化する(`jupyter labextension disable @jupyterlab/git`)判断もある。 検知は難しいが、手掛かりはある。1つは、リポジトリ側で異常なファイル名を探すことで、`git log --diff-filter=R --name-only` で過去のリネームを一覧し、`<` や `"` を含むファイル名が無いかを見る。もう1つはサーバ側で、notebook を開いていないのに kernel が起動している、実行していないコードが走った形跡がある、といった痕跡を Jupyter のサーバログで確認する。共有環境では利用者ごとのトークンが盗まれている可能性があるので、侵害が疑われる場合はトークンの再発行を先に行う。 優先順としては、**複数人で共有している JupyterHub と、外部リポジトリを扱う解析環境**が先である。自分専用のローカル環境で自分のリポジトリしか開かないなら、実際の攻撃経路は成立しにくい。

自分の環境が CVE-2026-54527 の影響を受けるか確認するには?

Jupyter jupyterlab-git 0.30.0b3 以上 0.54.0 未満 を利用している場合、稼働バージョンが影響範囲に含まれるかを一次情報(https://nvd.nist.gov/vuln/detail/CVE-2026-54527)で確認してください。AWS・GCP・Azure・Linux それぞれの対応状況は本ページの「クラウド/OS 別の対応状況」表にまとめています。確認できていない項目は「情報確認中」と明記しており、存在しないパッチ番号・バージョンは記載していません。

参考情報(出典)

本ページの記載は下記の一次情報に基づく非公式まとめです。数値・対応状況は各出典元で最終確認してください(最終確認: 2026/08/01)。

免責: 本ページは CISA KEV・NVD・各ベンダー公式アドバイザリ等の公開情報をもとにした非公式まとめです。修正バージョンや対応可否は変更される場合があります。実際の対応は必ず 出典元および各ベンダー公式情報・自環境で確認してください。

« 一覧に戻る