「承認」ボタンを、コマンド自身が欺いていた──Claude Codeが3日連続で塞いだ、エージェント権限チェックの抜け穴群

承認ダイアログに映らない不可視文字でコマンドを隠せた——Claude Codeが8月4〜6日のv2.1.221〜223で連続修正した、エージェント権限チェックの抜け穴群と、無人運用でいま打てる手をまとめる。

シェア
「承認」ボタンを、コマンド自身が欺いていた──Claude Codeが3日連続で塞いだ、エージェント権限チェックの抜け穴群

承認ダイアログに映らない「見えない文字」

コーディングエージェントの安全設計は、最後は人間の「承認」で担保されます。Claude Code のようなツールは、シェルコマンドやファイル書き込みを実行する前に「このコマンドを実行してよいか」と確認ダイアログを出し、利用者がそこで許可を押して初めて動きます。ところが 8 月 6 日にリリースされた Claude Code v2.1.223 の修正内容は、その最後の砦が欺かれていた可能性を示すものでした。

Anthropic が公開した変更履歴には、「タブや不可視の Unicode 文字で埋められたコマンドが、承認ダイアログからコマンドの一部を隠せる不具合を修正した」と記されています。つまり、利用者が承認ダイアログで見ている文字列と、実際に実行されるコマンドがずれていた——見えている部分だけを見て「問題なさそう」と許可を押すと、隠された部分まで一緒に走ってしまう、という穴です。人間の目には同一に見える文字(confusable characters)を突く手口は以前から指摘されており、この修正はその系譜に連なるものです。

3日で連続した、権限まわりの修正

注目すべきは、これが単発の修正ではない点です。8 月 4 日の v2.1.221 から 6 日の v2.1.223 まで、3 リリース連続で権限チェックと分離(isolation)の抜け穴が塞がれました。主なものを並べると次の通りです。

バージョン塞いだ抜け穴
v2.1.221
(8/4)
zsh の [[ ]] 正規表現条件の中で隠しコマンドが実行できた/Windows で引用符を含むパスが検査を素通りした/ワークフロー・スクリプトが動的 import() でサンドボックス外のコードを実行できた
v2.1.222
(8/5)
worktree で分離したはずのセッションとサブエージェントが、本チェックアウトに対して破壊的な git コマンドを実行できた/バックグラウンド処理で PreToolUse の自動許可フックがツール制限を回避できた
v2.1.223
(8/6)
タブ・不可視 Unicode でコマンドの一部を承認ダイアログから隠せた/エージェント定義の bypassPermissions が組織側の「無効化ポリシー」を無視していた/worktree 分離の穴を、ファイル編集と Bash の全セッションに適用し直した

いずれも派手な新機能ではなく、地味な「配管の穴埋め」です。ですが共通しているのは、エージェントに与えたはずの制約(承認・サンドボックス・作業ディレクトリの分離・組織ポリシー)が、特定の条件で効いていなかったという点です。同じ週には、承認を経ずにエージェントが自ら実行判断を下す「自動モード」が全ユーザーに展開されてからちょうど 1 か月が経とうとしていました。判断を機械に預ける度合いが増すほど、これらの「関所」が確実に効くことの重みは増します。

関所が効かないと、何が起きうるか

コーディングエージェントは、外部から読み込んだ内容(Web ページ、スキルファイル、MCP サーバーのメタデータなど)を手がかりに動きます。もし承認ダイアログが欺けるなら、悪意ある指示を「安全そうに見える承認」として通される余地が生まれます。破壊的な git コマンドが分離された作業場を飛び越えて本体に及べば、意図しない変更や履歴の破壊につながりえます。こうしたリスクは、エージェントに強い権限を渡して無人で回すほど大きくなる、という指摘があります。便利さの裏側にある構造的な弱点として、頭の片隅に置いておきたいところです。

一方で、こうした穴が外部の攻撃事例としてではなく、開発元自身の変更履歴として速いテンポで塞がれ、内容まで具体的に開示されている点は前向きに評価できます。修正の透明性そのものが、エージェントを業務に組み込む際の判断材料になります。

いま打てる手

実運用でエージェントを使っているなら、まず Claude Code を最新版(v2.1.223 以降)へ更新するのが最初の一手です。そのうえで、組織で無人運用している場合は、bypassPermissions の無効化ポリシーが意図通り効いているかを確認する価値があります。マーケットプレイスの許可・ブロックを組織単位でまとめて管理したい場合は、v2.1.223 で追加された owner/* のワイルドカード指定が使えます。承認ダイアログを「見て押すだけ」の運用は、今回のような死角がある前提で、権限そのものを絞る設計に寄せておくのが堅実です。

参照: Claude Code changelog(公式)Releasebot: Claude Code UpdatesClaude Code Changelog (August 2026)TechTimes: Claude Code Seals Bash and Unicode Bypass GapsGitHub Issue #29489: Unicode confusable characters can bypass permission rule matching

続きを読む

「どのモデルに任せるか」の中身を、Cursorが開けてみせた──Routerが明かす、Git・計画・実装・デバッグの“モデル別の得手不得手”

「どのモデルに任せるか」の中身を、Cursorが開けてみせた──Routerが明かす、Git・計画・実装・デバッグの“モデル別の得手不得手”

Cursorが8月6日、Routerの「どうモデルを選ぶか」を公開。Compassで簡単さを測り、Git=Grok・計画=Sol・実行=Opus・デバッグ=Fableと持ち場を分ける仕組みと、コスト削減の公表値、そして再現性・ベンダー依存の但し書きを整理します。

FF
「無人で回すエージェント」に開いていた二つの穴──Claude Code v2.1.223が塞いだ、ワークフローの砂場破りと長時間セッションのメモリ漏れ

「無人で回すエージェント」に開いていた二つの穴──Claude Code v2.1.223が塞いだ、ワークフローの砂場破りと長時間セッションのメモリ漏れ

Claude Code v2.1.223(8月6日)が、ワークフローが動的import()でサンドボックスを抜けられた穴と、長時間・無人セッションで積み上がっていたメモリ漏れを一括修正。自動運用で回している人ほど効く更新を整理する。

FF
自社コードの8割をAIに書かせる会社が、そのAIに「ブレーキ」を求めた──1,134人が署名した『Pacing the Frontier』

自社コードの8割をAIに書かせる会社が、そのAIに「ブレーキ」を求めた──1,134人が署名した『Pacing the Frontier』

自社コードの8割超をClaudeが書くAnthropicと、OpenAI が「AIの進歩を意図的に緩める仕組み」を求める書簡に正式賛同。1,134人が署名した『Pacing the Frontier』の中身と、開発現場・ビジネスへの影響、そして反競争の懸念を読み解く。

FF