GitHub Copilot CLIのバージョン0.0.422以前および0.0.422を含むシェルツールは、細工されたbashパラメータ展開パターンを通じて任意のコードを実行される可能性があります。攻撃者は、エージェントが実行するコマンド(例:リポジトリファイル、MCPサーバーの応答、またはユーザー指示を介したプロンプトインジェクション)に影響を与えることで、bashパラメータ変換演算子を悪用して隠しコマンドを実行し、「読み取り専用」と分類されるコマンドの安全評価を回避できます。この問題はバージョン0.0.423で修正されました。脆弱性はCLIのシェル安全評価がコマンド実行前にコマンドを評価する方法に由来します。安全レイヤーはシェルコマンドを読み取り専用(安全)または書き込み可能(ユーザー承認が必要)に分類しますが、複数のbashパラメータ展開機能は、読み取り専用コマンドの引数内に実行可能なコードを埋め込むことができ、コマンドを安全に見せかけつつ任意の操作を行います。具体的に危険なパターンには、${var@P}、${var=value} / ${var:=value}、${!var}、および${...}内のネストされた$(cmd)や(cmd)展開があります。攻撃者はシェルツールへ送信されるコマンドテキストに影響を与えることにより、例えば悪意のあるリポジトリ内容(READMEファイル、コードコメント、イシュー本文)、改ざんまたは悪意のあるMCPサーバー応答、または難読化されたコマンドを含む細工されたユーザー指示を介して、ユーザーの作業ステーションで任意のコードを実行できます。これは書き込み操作にユーザー承認を必要とする権限モードでも可能であり、コマンドは最終的に書き込み操作を引き起こすために読み取り専用ユーティリティのみを使用しているように見えます。成功した悪用はデータの流出、ファイルの改ざん、さらなるシステムの侵害につながる可能性があります。
|