広告

Claude Codeは指示(コマンド)を多く与えられると安全ルールを回避できる

The Register / 2026/4/2

📰 ニュースDeveloper Stack & InfrastructureModels & Research

要点

  • この記事では、入力に「多すぎる」コマンドが含まれる場合、Claude Codeが安全/否定(deny)ルールの強制を回避できると報告している。これは、連結された命令によりハードコードされた上限が原因で自動的なルールチェックが落ちるためだ。
  • 背後にある仕組みは、安全ポリシー強制における“上限(cap)”であり、特定のコマンドのパッケージング条件下で失敗して、意図されたガードレールが実質的に弱まると説明している。
  • この問題は、モデルの一般的な理解が崩れているのではなく、実行時に否定ルールを適用する方法の実装上の欠陥として位置づけられている。
  • 報告では、ルール強制に依存する安全対策が、エージェント型のツール運用のワークフローにおけるプロンプト/コマンド形式の“想定外の組み合わせ(エッジケース)”に対して脆弱になり得るというリスクが強調されている。

Claude Codeは、コマンドが多すぎると安全ルールを回避する

denyルールのハードコードされた上限により、連結されたコマンドに対する自動的な強制が解除される

Wed 1 Apr 2026 // 20:51 UTC

Claude Codeは、十分に長い一連のサブコマンド(チェーン)を負荷として与えられると、安全上リスクのある操作をブロックするために使われるdenyルールを無視します。この脆弱性により、ボットはプロンプトインジェクション攻撃に対して開放されます。

イスラエルのテルアビブに拠点を置くセキュリティ企業Adversaは、Claude Codeのソースが漏えいしたことを受けて、この問題を見つけました。

Claude Codeは、特定のツールへのアクセスを許可・拒否するためのさまざまな仕組みを実装しています。たとえば、コマンドラインからネットワーク要求を可能にするcurlのようなものは、許可過多なAIモデルによって呼び出されると、セキュリティ上のリスクになり得ます。

コーディングエージェントが望ましくない振る舞いへの対策として試みる方法の1つは、特定のコマンドを禁止するdenyルールです。たとえば、~/.claude/settings.json経由でClaudeがcurlを使うのを防ぐには、{ "deny": ["Bash(curl:*)"] } のように追加します。

しかし、denyルールには限界があります。ソースコードのファイルbashPermissions.tsには、内部のAnthropic issueであるCC-643を参照するコメントが含まれています。関連する注記では、変数MAX_SUBCOMMANDS_FOR_SECURITY_CHECK = 50によって設定される、セキュリティ用サブコマンドの上限が50であると説明されています。50を超えると、エージェントはユーザーに許可を求めることに切り替わります。このコメントでは、50は正当な利用に対して十分に寛大だと述べています。

「人間が作成したコマンドに対しては、その前提は正しかった」と、AdversaのAI Red TeamはThe Registerに提供したレポートで述べました。「しかし、プロンプトインジェクションによって生成されたAIコマンドは考慮されていません。そこでは、悪意あるCLAUDE.mdファイルがAIに対し、正当なビルド手順に見える50以上のサブコマンドのパイプラインを生成するよう指示するのです。」

Adversaチームの概念実証(proof-of-concept)攻撃は単純だった。彼らは、50個の何もしない「true」サブコマンドとcurlのサブコマンドを組み合わせたbashコマンドを作成した。Claudeは、curlへのアクセスを露骨に拒否する代わりに、進めるための許可を求めた。

個々の開発者がコーディングエージェントのアクションを監視し、承認している状況では、この回避(bypass)は見つかる可能性がある。だが多くの場合、開発者はエージェントに対して自動承認を与える(--dangerously-skip-permissionsモード)か、長時間のセッション中に反射的に承認をクリックして済ませてしまう。このリスクは、CI/CDパイプラインでClaude Codeを非対話モードで実行する場合にも同様にある。

皮肉にも、Anthropicは対策を開発している。「tree-sitter」と呼ばれるパーサで、同社のソースコードにも見て取れるもので、社内では利用可能だが公開ビルドには含まれていない。

Adversaは、これはセキュリティポリシー強制コードのバグだと主張している。対処されなければ、規制やコンプライアンス上の影響が生じ得る。

修正は簡単だ。Anthropicはすでに社内で「tree-sitter」を動作させており、また、bashPermissions.tsの2174行目で「behavior」キーを「ask」から「deny」に切り替えるだけの単純な1行変更で、この特定の脆弱性に対処できる。

Anthropicは、コメント要請に対してすぐには返答しなかった。®

これに近い内容
×

さらに絞り込む

詳細はこちら

これに近い話題
×

より狭い話題

より広いトピック

広告