テルアビブを拠点とするセキュリティ企業Adversaの研究者たちは、Anthropicが開発した自律型AI プログラミング・エージェント「Claude Code」内の脆弱性を発見しました。エージェントを十分に長いサブコマンドシーケンスで誘導することで、防御的な遮断プロトコルが事実上機能不全に陥り、デジタル侵害者が悪質なディレクティブの注入を通じて攻撃を仕掛ける機会が生まれるのです。
Claude Codeは潜在的に危険なツールへのアクセスを制限する機能を備えています。例えば、管理者はネットワーク呼び出し用ユーティリティのcurlの使用をエージェントに禁止することができます。これは~/.claude/settings.json設定ファイル内に対応するマンデートを記述することで実現します。これは堅牢な防御のように見えますが、Adversaは最近一般に流出したエージェントのソースコード内に興味深い記述を発見しました。
bashPermissions.tsファイル内で、定数MAX_SUBCOMMANDS_FOR_SECURITY_CHECK = 50が見つかりました。これは厳密な閾値を定義しています:エージェントは単一文字列内で最大50個のサブコマンドをセキュリティマンデートへの準拠について検査します。サブコマンド数がこの制限を超える場合、Claude Codeは自動的にブロックするのではなく、単にユーザーに認可を求めます。コード内のコメントでは、50は通常の操作に対する「寛容な制限」だと説明されています。これは人間が作成したコマンドには当てはまりますが、開発者たちは悪質なCLAUDE.mdファイルがAIに50個以上のサブコマンドのパイプラインを正当なビルドプロセスに装って自動生成させるシナリオを想定していませんでした。
Adversaの研究者たちはこの脆弱性を実験的に検証しました。彼らは50個の空のtrueサブコマンドに続く1つのcurl呼び出しで構成されたbashディレクティブを構築しました。エージェントはcurlコマンドをブロックするのではなく、ユーザーに許可を求めました。長時間の開発セッション中、開発者は頻繁にこのような許可要求を反射的に承認するか、あるいはエージェントが完全な自由度で動作する--dangerously-skip-permissionsモードを有効にすることがあります。非対話型モードでClaude Codeを実行するCI/CDパイプラインも同じ理由で同様に脆弱です。
注目すべきことに、Anthropicはすでに実行可能な解決策を持っています。ソースコードには、複雑なbashディレクティブを厳密に分析できるtree-sitterパーサーが組み込まれています。さらに、Adversaの調査によると、この脆弱性はbashPermissions.tsファイルの単一行を変更することで中和できます。具体的には、behaviorキーの値をaskからdenyに変更することです。この修正は脆弱性を解決したはずですが、Claude Codeの公開版ではまだこの修正が実装されていません。Adversaは、これはセキュリティポリシー実装メカニズムの基本的な失敗を示しており、規制遵守に関する重大な影響をもたらす可能性があると指摘しています。