GitHubの脆弱性情報データベースで、JupyterLabの文書の信頼指定に関する脆弱性「CVE-2026-102832」が公表されています。確認画面を開いている間に現在の文書が切り替わると、意図しない別の文書を信頼済みにしてしまいます。修正版はJupyterLab v4.6.4とv4.5.11で、対象のJupyterLabを組み込むNotebookなども確認が必要です。
確認したコマンドと、信頼する文書が食い違う
JupyterLabでは4.5.7以降、文書内のコマンド実行ボタンを初めて押すと確認画面が出ます。画面にはコマンド名と「Cancel」「Run Once」「Trust」が表示されます。「Trust」は、そのコマンドを実行すると同時に、文書を信頼済みにする選択肢です。
問題は、信頼する文書がボタンを押した時点ではなく、確認に応答した時点の「現在の文書」で決まることです。他者が作ったMarkdownやノートブックのボタンを押し、確認中に文書が切り替わった後で「Trust」を選ぶと、別の文書が信頼済みになります。文書の切り替えは、起動時のワークスペース復元や拡張機能の動作でも起こります。
実際にその場で実行するコマンドには、確認画面で利用者が同意しています。問題の中心は、その同意とは別の文書に信頼が付く点です。誤って信頼された文書のボタンは、以後、確認なしでコマンドを実行します。一方、元の文書は未信頼のままなので、次にボタンを押すと再び確認が出ます。
ノートブックでは保存後も信頼状態が続く
ノートブックが誤って信頼された場合、全セルが信頼済みとなり、保存・署名されます。次回も信頼状態が続き、信頼処理では未保存の編集内容も保存されます。追加の確認画面は出ますが、信頼対象のファイル名は表示されません。確認が出たことだけでは、意図したファイルへの操作かを見分けられない点に注意が必要です。
Markdownプレビューでは、信頼状態はプレビューを閉じるまでで、ディスクには書き込まれません。同じ誤指定でも、文書の種類によって状態が残る範囲が異なります。
修正版は、ボタンを押した元の文書を信頼要求に保持し、その文書の信頼処理後にコマンドを実行します。資料は悪用の複雑さが高いとする一方、回避策より早期の更新を推奨しています。資料には公表日は記載されていません。また、修正版の日本での提供は発表には書かれていません。
影響する会社・しない会社
- 影響する: 資料が影響範囲として挙げるJupyterLab 4.5.7~4.6.3を利用する会社です。修正版としてはv4.6.4とv4.5.11が案内されています。
- 影響する: Notebook 7.5+など、対象のJupyterLabを組み込むアプリを使う会社です。利用画面の製品名だけでなく、組み込まれたjupyterlabパッケージの版も確認対象になります。
- 影響しない: JupyterLabも、対象のJupyterLabを組み込むアプリも利用していない会社です。
- 影響しない: 修正版のJupyterLab v4.6.4またはv4.5.11を適用した環境は、今回の不備が修正されています。
影響対象の版でも、誤った信頼付与には、他者の文書内のボタンを押すこと、確認中の文書切り替え、「Trust」の選択が必要です。対象版を使うだけで、直ちにすべての文書が信頼済みになるという内容ではありません。
情シスが今日やること
- 開発・分析部門と環境の管理者に、JupyterLabとNotebookの利用有無を確認してください。今日の棚卸しでは、利用環境ごとのjupyterlabパッケージの版と更新担当者を記録します。資料には版を確認する管理画面の場所は書かれていません。
- 対象環境の管理者に修正版への更新を依頼し、作業日を決めてください。資料はNotebook v7+などの利用者にも、jupyterlabパッケージの更新を求めています。Notebook側の製品名だけで更新済みと判断しないことが重要です。
- 更新までの暫定対応として、利用者に「Trust」ではなく「Run Once」を選ぶ運用を案内してください。これは今回の誤った信頼付与を避ける方法であり、実行するコマンド自体の確認に代わるものではありません。
- 「Run Once」での運用が難しい環境では、設定担当者とallowCommandLinkerをfalseにする案を検討してください。この設定は全文書に適用されます。コマンドリンクを使う文書や拡張機能の移動機能も止まるため、変更前に利用部門へ影響を知らせます。資料には設定画面や設定ファイルの場所は書かれていません。