JupyterLab Desktopの脆弱性2件、修正版あり
JupyterLab Desktopに、細工されたノートブックや接続先URLを介して利用者のPCで任意のコードが実行される脆弱性が2件公表されました。4.6.2-1に更新し、更新までは外部から受け取ったノートブックを開かないでください。
同じ発表の脆弱性 2 件
- CVE-2026-86044 重大 9.6
- CVE-2026-102530 重大 9.4
急ぎ度: 早めに
CVSSはCVE-2026-86044がv3で9.6、CVE-2026-102530がv4で9.4と高く、修正版4.6.2-1が出ていますが、どちらも利用者の操作が前提です。
関係があるか
デスクトップ版のJupyterLab Desktopを使い、他人から受け取ったノートブックを開く人や、リモートサーバーに接続する人が対象です。データ分析や研究の端末、共有されたノートブックで作業するチームが当てはまります。
| 製品 | 影響を受ける版 | 修正版 |
|---|---|---|
| JupyterLab Desktop(jupyterlab-desktop) | 4.6.2-1より前。CVE-2026-86044の勧告では影響する版が4.2.5-1以前とも記載されています。 | 4.6.2-1 |
確かめ方
- 1利用者ごとにインストールされているJupyterLab Desktopの版を調べ、4.6.2-1より前なら対象です。
- 2Desktopが使う環境のJupyterLabの版も、
jupyter lab --versionで確認します。ノートブック経由の経路では、この版が回避策の判断材料になります。 - 3ノートブックを外部から受け取る運用(メール、共有サイト、ファイル受け渡し)の有無と、リモートサーバーへ接続する機能の利用有無を、利用者に聞いて洗い出します。
何が起きたか
JupyterLab Desktopの画面側には、本来は信頼できる画面にだけ使わせる内部の機能があります。今回の2件は、そこに信頼できない内容が入り込み、利用者の権限で任意のコードが実行される脆弱性です。どちらも修正版は4.6.2-1です。
- CVE-2026-86044: 信頼できないノートブックに仕込まれたリンクを開いた画面で踏むと、ローカルのJupyterサーバーのURLと認証トークンが外部のサイトに渡り、任意のコード実行に至ります(CVSS v3は9.6)
- CVE-2026-102530: リモートサーバーのURLがサーバー選択ダイアログとWelcome画面に安全にエンコードされないまま表示され、細工したURLでJavaScriptが動き、任意のコード実行に至ります。Welcome画面のRSSニュースフィードのタイトルも安全でない形で表示されます(CVSS v4は9.4)
前者の分類はCWE-601、後者はCWE-79、CWE-94、CWE-116です。修正では、画面がJupyterサーバーの外へ移動した場合にサーバー情報を返さなくなり、外部のURLはシステムのブラウザーで開くようになりました。
攻撃の流れ
-
1
細工した入力を渡す
攻撃者が、細工したノートブックまたは接続先のURLを利用者に届けます。
-
2
利用者が操作する
利用者がノートブック内のリンクをクリックするか、渡されたURLを入力します。
-
3
特権の機能に到達
攻撃者の用意した内容が、アプリ内部の特権のある機能を使える状態になります。
-
4
任意のコード実行
利用者の権限で、攻撃者のコードがPC上で動きます。
どう悪用されるか
CVE-2026-86044は、攻撃者がノートブックをファイル、メール、コード共有サイトなどで利用者に渡すところから始まります。認証は要りません。利用者がそのノートブックを開き、中のリンクを1回クリックすると成立します。環境内のJupyterLabが4.4.8より前で、JupyterLab Desktopが自分でローカルのJupyterサーバーを管理する既定の使い方のときが対象です。環境のJupyterLabが4.4.8以降なら、この経路は成立しません。通常のリンクと違う書体で表示されますが、攻撃者は見た目を偽装できます。
CVE-2026-102530は、攻撃者に説得された利用者が細工したリモートサーバーURLを入力すると成立します。別の経路として、Jupyter BlogのフィードやそのキャッシュデータをRSSのタイトル経由で攻撃者が制御できる場合にも成立します。こちらでは、ノートブックを開く必要はありません。
どちらも成功すると、利用者の権限で任意のコードが実行されます。PC内のファイルの読み書きや、そこから先の社内システムへの足がかりに使われるおそれがあります。
今すぐやること
-
1
JupyterLab Desktopを4.6.2-1に更新する
2件ともこの版で修正されています。個人で入れている端末が多い場合は、利用者へ更新を周知します。
-
2
環境内のJupyterLabの版を確認する
4.4.8より前なら、ノートブック経由の経路が成立する条件のひとつを満たします。Desktopの更新とあわせて環境も上げておくと、リンク経由の経路を別の面でも断てます。
jupyter lab --version -
3
更新まで出所の不明なノートブックとURLを避ける
メールや共有サイトで受け取ったノートブックを開かない、知らない相手から渡されたサーバーURLを接続先に入力しない、の2点を利用者に伝えます。
-
4
心当たりのある端末を調べる
出所の分からないノートブックを開いてリンクを押した、渡されたURLに接続した、という端末があれば、不審なプロセスや新規作成されたノートブックがないかを確認します。
-
5
CVE-2026-102530の追加情報を確認する
ベンダーの告知(jupyterlab-desktopのGitHubのセキュリティ勧告)で、この件の回避策や影響する版の記載を確かめます。
すぐ更新できないとき
すぐに更新できないときの回避策は、ノートブック経由のCVE-2026-86044についてのものです。
- 環境内のJupyterLabを4.4.8以上に上げる(
pip install --upgrade "jupyterlab>=4.4.8")。Desktopを更新しなくても、リンク経由の経路は断てます - MathJaxの拡張を無効にする(
jupyter labextension disable @jupyterlab/mathjax-extension) - 出所を完全には信頼できないノートブックを開かない、中のリンクをクリックしない
CVE-2026-102530は、知らない相手から渡されたサーバーURLを入力しない運用で、リスクを下げるしかありません。Desktopの更新が根本的な対処です。
背景
JupyterLab Desktopは、JupyterLabをWebブラウザー無しで使えるようにしたデスクトップアプリです。データ分析や研究では、同僚や外部から受け取ったノートブックを開く機会が多く、アプリは自前のローカルサーバーを立てて動きます。Jupyterでは「信頼済み」のノートブックを表示することがコードの実行と同じ扱いになるため、サーバーの認証トークンが外に出ると、そのまま任意のコード実行に結びつきます。
CVE-2026-86044は、上流のJupyterLabで修正されたリンクの扱いの問題(4.4.8で修正)に、Desktop側の内部機能の問題が重なった脆弱性です。Desktop側の修正では、画面がJupyterサーバーの外へ移動することを防ぎ、外部のURLはシステムのブラウザーに回すようになりました。CVE-2026-102530は、同じアプリのWelcome画面と接続ダイアログが表示する文字列の処理が原因で、ノートブックとは別の入口です。
よくある質問
Q.ブラウザーで使うJupyterLabにも、同じ更新が必要ですか。
この記事は、取得元の公開情報をもとに、人が監修しながらAIを活用して執筆しています。執筆と監修は佐々木 航が担い、公開したあとも人が内容を確認しています。誤りに気づいたときは直し、記事の末尾に訂正の行を残します。対応を決める前に、下の原文と参照先も確認してください。
原文の説明 取得元が公開している説明をそのまま載せています (多くは英語)。
JupyterLab Desktop is the cross-platform desktop application for JupyterLab. Prior to 4.6.2-1, JupyterLab Desktop exposed getServerInfo to the renderer without confirming that the current page still had the local Jupyter server origin. In a local managed session using JupyterLab before 4.4.8, an attacker can place a crafted MathJax link in an untrusted notebook. If a victim opens the notebook and clicks the link, the existing renderer navigates to an attacker-controlled site while retaining access to the preload bridge. The site can call getServerInfo to obtain the local server URL and authentication token, then use the Jupyter REST API to create and trust a notebook that executes arbitrary code as the victim. Users whose environment already uses JupyterLab 4.4.8 or later are unaffected because the corrected link handling breaks the first step of the chain. This vulnerability is fixed in 4.6.2-1.
出典: CVE.org (CVE Program・cvelistV5) NVD
参照URL
- web github.com
- web github.com
- web github.com