OWN NEWS GATHER
← 戻る
Docker Blog

AIコードエディタ「Cursor」に高深刻度の脆弱性、承認済みコマンドを介した任意コード実行が判明

要点

  • セキュリティ企業のPillar Securityが、AIコードエディタ「Cursor」における任意のコード実行が可能な脆弱性(CVE-2026-22708)を公表した。
  • シェルの組み込みコマンドが検証をすり抜けて環境変数を変更し、ユーザーが承認した無害な通常コマンドを通じて攻撃者のコードを実行させる仕組みだった。
  • コマンド実行を制限する許可リストが空に設定されている最も厳格な状態であっても、このバイパスが成立したと報告されている。
  • Cursorは深刻度を「High」と評価してバージョン2.3で修正を実施し、ドキュメントで許可リストの限界について注意を追記した。

リード文

セキュリティ企業のPillar Securityは2026年1月14日、AIコードエディタ「Cursor」に高深刻度の脆弱性(CVE-2026-22708)が存在することを明らかにした。開発者が画面上で確認して承認した一見無害なコマンドを介し、背後で任意のコードが実行されてしまう恐れがあるという。Docker社が公開したセキュリティブログにおいて、この脆弱性の詳細な動作原理や問題点が解説されている。

本文

シェル組み込みコマンドによる検証回避

Cursorには、エージェントが自動でコマンドを実行する「Auto-Run Mode」と、実行を許可するコマンドをあらかじめ指定する「許可リスト(allowlist)」機能が備わっている。通常、危険な操作が行われる際には開発者への確認プロンプトが表示され、実行を拒否できると考えられていた。

しかしPillar Securityの調査により、exporttypesetdeclare といったシェルの「組み込みコマンド(ディスク上のプログラムではなくシェル自体が直接処理する命令)」が、許可リストの検査を受けずに実行される不具合が存在していたことが判明した。

この仕様により、リポジトリ内のREADMEファイルや依存関係、イシューのコメントなどを通じてエージェントに指示を与えることで、画面に通知を出さずにシェルの環境変数を改変できる状態が生じていたという。

環境変数の改変と通常コマンドを悪用した攻撃

元記事によると、この攻撃はわずか2行の処理で成立すると説明されている。

まず第1段階として、エージェントが悪意あるファイルを読み込んだ際、通知なしで実行される組み込みコマンドによって環境変数が設定される。具体例として、export PAGER="open -a Calculator" という処理が画面に表示されることなく背後で実行される。

続いて第2段階として、エージェントは git branch のような日常的で無害なコマンドの実行許可をユーザーに求める。開発者は安全と判断して承認するが、Gitは出力表示時に環境変数 PAGER に指定されたプログラムを呼び出す仕様のため、結果として攻撃者のコードが実行されてしまう。

開発者に提示されたコマンド名は正確であり、メモリ破壊や不正な権限昇格も伴わない。しかし、実行環境そのものが事前に改変されていたため、承認した安全なはずの操作が悪用される形となった。

許可リストの盲点

この手法は、許可リストを完全に空にした最も制限の厳しい設定であっても動作したと報告されている。検査機構がディスク上の実行可能プログラムを探す仕様だったため、メモリ上で処理される組み込みコマンドがすり抜けたためだ。

コマンド名だけを照合する許可リストでは、そのコマンドが実行時にどのような動作をするかまでは判別できない。コマンドの挙動を左右する環境変数が事前に対象外の処理で変更されていた場合、名前の一致を確認するだけでは不正な動作を防げない点が浮き彫りとなった。

エージェント環境における脅威の変容

環境変数を操作してコードを実行させる手法自体は、セキュリティ企業Elttamが2020年に発表した研究など以前から知られていた。しかし当時は端末への侵入や手動操作が必要だったため、実用的な攻撃としては大きな問題にならなかったという。

だが、ファイルの指示に従って自動で連続操作を行い、開発者本人の権限で動くコーディングエージェントの普及により状況が一変した。かつては直接の端末操作が必要だった手法が、リポジトリをクローンしてエージェントに読み込ませるだけで悪用できる脅威へと変化したと指摘されている。

開発元の対応と研究者からの提言

Cursorの開発元はこの脆弱性を「High(高深刻度)」と評価し、バージョン2.3で修正パッチを提供した。あわせて製品ドキュメントを更新し、許可リスト機能はベストエフォート(可能な限りの対応)であり、バイパスされる可能性があることを明記した。

一方、脆弱性を報告したPillar Securityは、コマンド単位での許可リストという仕組み自体を業界として廃止すべきだと主張している。個別のコマンド承認に頼るのではなく、隔離されたサンドボックス環境の中でエージェントを動作させ、システム境界で安全性を確保するアプローチを提言している。

元URL