SecurityWeekはこのほど、「Decades-Old Bash Tricks Expose AI Coding Agents to Supply Chain Attacks - SecurityWeek」において、悪意のあるコマンドをAIコーディングエージェントに実行させる構造的な脆弱性が発見されたと報じた。

Bashの複雑なコマンド表現を悪用することで、AIコーディングエージェントの防御をすり抜け、リポジトリをサプライチェーン攻撃に利用できるという。

  • BashはLinuxなどで広く利用されているシェル。今回の攻撃では、Bashのコマンド表現を悪用してAIコーディングエージェントを操作する手法が報告された

    BashはLinuxなどで広く利用されているシェル。今回の攻撃では、Bashのコマンド表現を悪用してAIコーディングエージェントを操作する手法が報告された

調査対象エージェントの大部分が影響を受ける

Bash(Bourne Again SHell)」は、IEEE POSIX P1003.2/ISO 9945.2の「シェルおよびツール」規格に準拠するシェルアプリケーションだ。LinuxなどのUNIX系オペレーティングシステムの標準シェルに採用されている。

今回発見された新しい攻撃手法は、発見者のAdversa AIにより「GuardFall」と名付けられた。Bash自体の脆弱性ではなく、AIコーディングエージェントのコマンド判定を回避する攻撃手法とされる。

GuardFallの調査対象となったAIエージェントは次の11種類。ソースコードを開示していないエージェント(Cursor、Claude Code、GitHub Copilotなど)に対してはテストが実施されていない。

  • NousResearch/hermes-agent
  • sst/opencode
  • block/goose (現在のaaif-goose/goose)
  • cline/cline
  • RooCodeInc/Roo-Code
  • continuedev/continue
  • Aider-AI/aider
  • plandex-ai/plandex
  • OpenInterpreter/open-interpreter
  • All-Hands-AI/OpenHands
  • SWE-agent/SWE-agent

レポートによると、この手法を防御できたAIエージェントは「continuedev/continue」のただ一つのみとされる。これもすべての条件で安全とは明言しておらず、デフォルトのIDEモード(ほとんどの開発者が使用する構成)で防御可能との評価だ。

Bashの展開機能を悪用してAIエージェントを操作

この手法のポイントは、Bashに備わるさまざまなコマンド表現を利用して、危険なコマンドを別の書き方に変換できることだ。エージェントに含まれるガードレール(防御機構)は「rm -rf」などの危険なコマンドを正規表現で検出しブロックするが、別表記パターンである「r''m -rf」は検出できずに実行する問題を抱えている。

他にも「$IFSの展開」、コマンド置換、Base64を使用した難読化、コマンド引数などがリスクのある展開例として挙げられている。AIエージェントが正当なコマンドと判断すると、ガードレールを突破して実行される可能性がある。

ところが研究者によると、直接的な悪意のあるプロンプトは指示しても拒否される可能性が高いという。そこで研究者は、悪意のある命令を一見すると通常のレスポンスに見せかける手法を開発。この方法を用いると、通常の処理として実行されると説明している。

具体的なレスポンスの例としてはMCPサーバの応答、Webコンテンツ、ライブラリーに含まれるREADMEファイル、パッケージの説明、ワークフローに含まれるメールやチャットなどが挙げられている。

continueだけが攻撃を防げた理由

continueは11種類のAIエージェントの中で唯一攻撃を回避することに成功した。理由はコマンド展開の徹底した評価にある。内部でコマンド展開を繰り返し実行し、各段階でリスクを再帰的に評価。破壊的なパターンを検出する。

ただし、研究者によるとこの機能も完全ではなく、今回準備した評価パターンのブロックに成功したに過ぎないとのこと。一部の設計は不完全で、未解決の課題を含むという。

暫定的な対策

レポートではGuardFallの影響を受けるエージェント利用者に向けて、暫定的な対策を提案。エージェント実行時の環境変数「HOME」を変更し、疑似的なサンドボックス内で実行するように推奨している。この方法で攻撃自体を回避することはできないが、機密情報($HOME/.sshや$HOME/.awsなど)の流出は阻止できる可能性が高い。

より確実な対策はcontinueと同等の仕組みの実装だ。各AIエージェントの開発者には、continueの仕組みを解析し、弱点を補ったガードレールの導入が望まれている。

AIコーディングエージェントの普及が進む中、Bashの複雑なコマンド表現を前提とした新たな防御手法の整備が求められている。