Claude Codeにセキュリティアップデート、オートモード時の深刻な権限バイパス脆弱性を修正

(Anthropic.com)[写真拡大]
Anthropicは、AI開発ツール「Claude Code」の最新バージョン「v2.1.216」をリリースし、オートモード実行時に発生する可能性があった深刻な権限バイパスの脆弱性を修正した。このアップデートは、Bashの複合コマンドやPowerShellの不可視Unicode文字を悪用した不正なコマンド実行を防ぐもので、ユーザーは速やかに「claude update」を実行することが推奨される。自律的に動作するオートモードの安全性を高めるため、今回の修正はすべてのClaude Codeユーザーにとって極めて重要な意味を持つ。
■権限バイパスの脆弱性を修正した最新バージョンをリリース
Anthropicは2026年7月20日(月曜日)、Claude Codeのバージョン2.1.216をリリースした。このアップデートでは、ツールの「オートモード」において、本来であれば警告が表示されるべきコマンドがすり抜けてしまう、2つの異なる権限バイパス(パーミッション・バイパス)の脆弱性が修正された。
修正されたのは、リダイレクトを含む複合Bashステートメントを標的としたものと、PowerShell入力における不可視のUnicode文字を標的としたものの2種類である。これにより、Claude Codeが動作する主要なシェル環境の双方がカバーされた。また、その2日前にリリースされたv2.1.214における6つのバイパス修正と合わせると、同ツールのリリース史上、最も集中的な権限強化が行われた期間となった。
2026年7月10日にすべてのClaude Codeユーザー向けに一般提供が開始された「オートモード」において、これらの修正は極めて重要な意味を持つ。オートモードでは、Claude Codeがシェルコマンドの実行、ファイルの書き込み、ネットワーク呼び出しを行う際、ステップごとにユーザーの確認を求めず、自律的に判断して実行する。そのため、権限レイヤーにおけるバイパスの存在は、単なる理論上のリスクにとどまらず、意図しないコマンドが実際に実行されてしまう危険性を意味していた。
今回明らかになった構造的な問題は、Claude Codeに限ったものではない。表示されるシェル入力と、実際に解釈・実行される入力が一致しない場合、入力テキストのパターンマッチングに依存する権限チェッカーは機能しなくなる。Claude Sonnet 4.6で動作するオートモードのバックグラウンド分類器は、まさにこうした構文パターンチェックだけでは自律実行の安全性を担保できないという課題に対処するために存在している。
■修正された2つのバイパス脆弱性の詳細
Bashのバイパス脆弱性は、Claude Code'sの権限チェッカーが複合ステートメントを解析する方法を悪用したものだった。例えば、「cmd1 && cmd2 > outputfile」のようなコマンドは、実行の連鎖とリダイレクトを組み合わせている。チェッカーは表示されているコマンドのトークンを分析したものの、複合構造の内部にあるリダイレクト先への書き込み操作を、独立した書き込み処理として完全には評価できていなかった。その結果、通常であれば権限の確認が必要なファイル書き込みが、チェッカーに検知されない形で複合ステートメント内に埋め込まれ、プロンプトなしで実行される隙が生じていた。
一方、PowerShellのバイパス脆弱性は、不可視のUnicode文字を利用する異なるメカニズムで動作していた。Unicodeの「Tags」ブロック(コードポイント U+E0000 から U+E007F)に含まれる文字は、標準的なエディタやターミナル画面には表示されないが、シェルやテキスト入力を読み取るAIモデルによって処理される。攻撃者がこれらの文字をコマンド文字列に埋め込むと、人間の目には安全に見えるコードでありながら、権限検証システムや実行エンジンに対しては全く異なるコマンドシーケンスとして認識させることが可能になる。
この不可視性は、単なる些細なバグではない。セキュリティ研究者のJohann Rehberger氏は2026年2月11日、Claude Codeを含む実稼働中のAIエージェント型開発ツールにおいて、スキルファイルやMCP(Model Context Protocol)サーバーのメタデータ内に不可視のUnicode指示として埋め込まれた任意のシェルコマンドが実行されてしまうことを実証した。これは、Cloud Security Alliance(CSA)の研究ノートでも「Unicode指示インジェクション」として文書化されている。同月に公開された独立したベンチマーク調査では、ツールが有効な環境において、不可視の指示に対するAIの従順率が最大72.8%に達したと報告されている。今回のv2.1.216での修正により、Claude Codeがこの既知の攻撃手法に対して脆弱であったPowerShell検証器の隙が解消された。
■パターンベースの権限チェックが抱える限界
72時間の間に、v2.1.214で6件、v2.1.216でさらに追加され、合計12件以上の異なる権限バイパスが修正された。これは単に未処理のバグが片付けられたという話ではない。安全境界を構文パターン(グラマーパターン)のチェックに依存しているすべてのAIエージェントツールが直面している、構造的な課題を浮き彫りにしている。
実用的なシェル言語はどれも表現力が豊かであるため、パーサーが予期しないエッジケースが必ず発生する。Bashの複合ステートメント、Unicodeインジェクション、GIT_DIRやGIT_WORK_TREEといった環境変数の上書き、git -Cを使ったワークツリーからの脱出、.claudeに設置されたシンボリックリンクによるプロジェクト外への書き込みリダイレクト、Windows上でプロンプトなしにネットワークパスにアクセスする読み取り専用コマンドなど、これらはすべて「表示される入力と解釈される入力が一致しない場合に、権限チェッカーが機能しなくなる」という同一の構造的課題から生じている。v2.1.216における修正リストは、同ツールがサポートするすべての主要なシェル環境に及んでいる。
セキュリティ業界では、このような脆弱性を「フェイルオープン(異常時に制限を解除して通過させる動作)」と呼ぶ。曖昧な入力や予期しない入力があった際、ブロックするのではなく、デフォルトで実行を許可してしまう挙動のことである。リンターやコードフォーマッターのような受動的なツールであれば、フェイルオープンな挙動も許容されることが多い。しかし、Gitの認証情報やSSHキーを持ち、ファイルシステムへの直接アクセス権を持つ環境で、オートモードで動作するAIエージェントツールにおいて、権限レイヤーがフェイルオープンであることは、攻撃者を呼び込むようなものである。
Anthropicが2026年3月から構築を進めてきた構造的な解決策は、安全境界を構文レイヤーからセマンティック(意味)レイヤーへと移行することである。Claude Sonnet 4.6で動作するオートモードのバックグラウンド分類器は、実行待ちのツール呼び出しを会話の文脈と照らし合わせ、「不可逆的な破壊やデータの外部流出」「セキュリティの低下」「信頼境界を越えるアクション」「共有インフラの保護機能のバイパス」「認証情報の探索」という5つのリスクカテゴリに分類して評価する。意味的な意図を評価する分類器は、コマンドが「何を行うか」を推論するため、文字列のパターンマッチングとは異なり、複合コマンドのリダイレクトなどに騙されることはない。
コマンドラインインターフェース(CLI)においては、依然として構文パターンのチェックも必要である。対話型セッションではオートモードがデフォルトではないため、手動確認によるフェイルセーフが適切な基準となる。しかし、v2.1.216で修正されたバイパスの多さは、自律実行において構文パターンのチェックだけでは不十分であることを実証している。
■長時間セッションのパフォーマンス向上とエージェントの同一性維持
v2.1.216における目立たないが実用上重要な改善として、長時間のセッションでパフォーマンスを低下させていた問題の解決が挙げられる。API呼び出しの前に会話履歴に対して実行される「メッセージ正規化」の処理が、会話のターン数に対して二次関数的(O(n²))にコストが増加する実装になっていた。
O(n²)の処理では、50ターンのセッションは10ターンのセッションの5倍ではなく、25倍の時間がかかる。大規模なリファクタリングや複数ファイルの編集、数十ターンに及ぶ探索的なタスクを実行する開発者にとって、この速度低下は数秒間のフリーズや応答の遅れとして現れ、システムの負荷が原因であると誤解されやすかった。今回の修正により、正規化処理が線形スキャン(O(n))に再構築され、長時間のセッションでも会話履歴の長さに影響されずに安定したパフォーマンスが維持されるようになった。
さらに、今回のアップデートでは、セッションがライフサイクルの境界を越えた際のエージェントのアイデンティティや権限、スコープに関する不具合も修正された。
バックグラウンドのエージェントセッションを再開した際、元の設定が復元されず、デフォルトのエージェント設定に戻ってしまう(カスタムプロンプトやツールの制限が失われる)問題があった。これにより、狭い権限しか与えられていなかったサブエージェントが、再開時にデフォルトのフル権限を持つエージェントとして動作してしまう危険性があったが、この修正により再開時にも元のプロンプトとツール制限が正しく復元されるようになった。
また、ワークツリーで隔離されたサブエージェントが、--git-dirなどのフラグやGIT_DIRなどの環境変数を使用して、共有チェックアウトにgit操作をリダイレクトできてしまう問題も修正された。さらに、.claude内のシンボリックリンクをたどってプロジェクトディレクトリ外に書き込みを行うパス・トラバーサルの脆弱性も解消された。
これらの一連の修正は、「エージェントが文脈を記憶しているために一貫して動作しているように見えながら、ライフサイクルの境界で許可された権限スコープが静かに拡大してしまっていた」という特有の失敗パターンに対処するものである。
■新設定「sandbox.filesystem.disabled」の追加
新たな設定オプションとして「sandbox.filesystem.disabled」が追加された。これにより、ネットワークの送信制御は維持したまま、ファイルシステムの隔離(サンドボックス)をスキップすることが可能になる。
ファイルシステム隔離は、システムレベルでファイル操作をインターセプトすることで、Claude Codeが書き込めるパスを制限する。しかし、一部のビルドツールは、特定のテンポラリディレクトリのパスやファイル記述子の挙動、シンボリックリンクの解決パターンに依存しており、この隔離レイヤーと競合することがあった。
隔離を無効にすると、Claude Codeは実行ユーザーがアクセス権を持つ任意のパスに書き込みができるようになる。ネットワークレベルの制御は有効なままであるが、防御レイヤーが1つ減少することと引き換えに、制約のあるビルド環境との互換性を確保するためのトレードオフとなる。Anthropicはこれを高度なユーザー向けオプションと位置づけており、デフォルトではなく、意図的に選択して適用すべき設定としている。
■「EndConversation」ツールの導入と認証エラーの改善
v2.1.216における最も特徴的な機能追加は、「EndConversation」ツールのClaude Codeへの拡張である。この仕組みは、2025年8月15日にAnthropicの一般向けチャットインターフェース(claude.ai)に初めて導入されたもので、当時はAIの福祉に関する探索的研究の一環として位置づけられていた。ユーザーからの執拗な嫌がらせや悪用、ジェイルブレイクの試みに対し、複数回の軌道修正が失敗した極めて稀なケースにおいて、Claude(Opus 4および4.1)が自らセッションを終了できるようにする機能である。
Anthropicは、Claudeが意識を持っていると主張しているわけではなく、不確実性を考慮した低コストの介入策としてこの機能を説明している。事前テストにおいて、Claude Opus 4は児童性的虐待コンテンツや大規模な暴力の指示といった要求を拒否する強い選好を示し、選択肢が与えられた場合には対話を終了することを選択したという。
このツールをClaude Codeに拡張することは、テキストチャットよりも敵対的な操作のリスクが高い環境において、同様の論理を適用することを意味する。Claude Codeはファイルの書き込み、コードの実行、コミットのプッシュ、外部サービスとの連携が可能なため、権限システムをバイパスさせようとする執拗な操作の試みは、単に有害なテキストを生成させることよりもはるかに重大な脅威となる。今回のリリースにより、一般向けチャット製品とエージェント型開発ツールの間で、敵対的な入力に対する防御能力の差が埋められた。
また、開発者が遭遇しやすかった「認証エラーが権限拒否に見える問題」も修正された。セッションの途中でOAuthトークンが期限切れになったりローテーションしたりした際、Claude CodeがHTTP 401エラーを発生させ、それを内部の分類器が「権限拒否」として処理していた。そのため、実際には認証情報の期限切れが原因であるにもかかわらず、Claudeが意図的にコマンドの実行を拒否したように見えていた。今回の修正により、トークンのローテーションが発生した場合は適切に認証処理へルーティングされるようになった。
■その他の修正とエンタープライズにおける今後の展望
v2.1.216の変更履歴には、上記以外にも40以上の項目が含まれている。例えば、AskUserQuestionツールにおいて、ユーザーが「待ってほしい」「説明してほしい」と回答した場合でも処理を進めてしまっていた問題が修正され、モデルが一時停止の要求を正しく解釈できるよう、自由記述の回答に中立的な表現が与えられるようになった。また、Webセッションのアイドル処理が修正され、無活動状態の後に切断された質問を再試行する問題が解消された。さらに、OTEL(OpenTelemetry)メトリクスのエンドポイントが一部のPrometheus構成と競合していた問題や、Chrome版Claudeの再接続ループ、MCP再認証時の競合状態などが修正されている。
近年のClaude Codeのアップデート軌跡は、機能の追加から、エージェントと実行システムとの間の安全境界の強化へとセキュリティロードマップが移行していることを示している。2026年3月のオートモード導入による意味分類器の採用、7月のデフォルト設定の手動確認への変更による影響範囲の縮小、そして今回のv2.1.214およびv2.1.216による構文レベルのバイパス修正は、その流れを裏付けている。
エンタープライズ環境、特に信頼できない入力を処理するCI/CDパイプラインでClaude Codeを実行する場合、これらの修正によって十分な安全性が確保されたと言えるかは、依然として議論の余地がある。2026年6月にMicrosoftのセキュリティ研究者が報告したように、信頼できないGitHub Issueのコンテンツを利用してClaude CodeにCI/CDのシークレットを読み取らせるようなプロンプトインジェクション攻撃は、今回のバイパス修正とは別のクラスの脅威であり、自動化パイプラインにおける課題として残っている。
しかし、ローカル環境で対話的にClaude Codeを使用する開発者にとって、今回の一連の強化は安全境界を大幅に強固にするものである。速やかにアップデートを適用することが推奨される。最新版は「claude update」コマンドで入手可能である。
■注目ポイントQ&A
●v2.1.216で修正されたBashとPowerShellの権限バイパスとはどのようなものですか?
Bashのバイパスは、リダイレクトを含む複合コマンド(&&などを使用)において、ファイル書き込み操作が権限チェッカーをすり抜けてしまう問題でした。PowerShellのバイパスは、画面に表示されない「Unicode Tags」ブロック(U+E0000〜U+E007F)の不可視文字を悪用し、人間の目には安全に見えるコマンドでありながら、シェルやAIモデルに異なる命令を実行させるものでした。これらは、確認なしでコマンドを実行する「オートモード」において特に深刻なリスクとなっていました。
●アップデート後、オートモードを有効にしてClaude Codeを実行しても安全ですか?
ローカル環境での対話的な開発セッションにおいては、今回のアップデートによって安全性が大幅に向上しています。オートモードでは、AI分類器が5つのリスクカテゴリに基づいてツール呼び出しを評価するセマンティックな防御層も機能しています。ただし、外部のGitHub Issueやプルリクエストなど、信頼できない入力を自動で処理するCI/CDパイプラインにおいては、プロンプトインジェクションなどの別の攻撃手法が存在するため、引き続き追加のセキュリティ制御が必要です。
●EndConversationツールとは何ですか?どのような場合に実行されますか?
ユーザーから執拗な嫌がらせや悪意のあるジェイルブレイクの試みがあり、複数回の軌道修正が失敗した極めて稀なケースにおいて、Claude Codeが自律的にセッションを終了できるようにする機能です。2025年8月に一般向けチャットに導入された仕組みを開発ツールにも拡張したもので、ファイルの書き込みやコード実行が可能な環境において、敵対的な操作からシステムを保護するための最後の手段として機能します。
●sandbox.filesystem.disabled設定の役割と、使用すべき基準を教えてください。
この設定は、ネットワークの送信制御を維持したまま、ファイルシステムの隔離(サンドボックス)を無効にするものです。一部のビルドツールが特定のテンポラリパスやシンボリックリンクの挙動に依存しており、隔離機能と競合する場合に互換性を確保するために使用します。無効にすると、Claude Codeは実行ユーザーの権限が及ぶすべてのパスに書き込み可能になるため、セキュリティリスクが高まります。デフォルトの隔離環境で問題が発生している場合のみ、トレードオフを理解した上で慎重に使用してください。
元記事: Claude Code Seals Bash and Unicode Bypass Gaps in Agentic Permission Layer
※この記事はTech Timesから提供を受けた記事を日本向けに翻訳・編集したものです。
スポンサードリンク
