Skip to content

原文(日本語訳)

sandbox.excludedCommandsまたはdangerouslyDisableSandboxによってサンドボックスから除外されたコマンドが、autoAllowBashIfSandboxedが有効な場合にBash ask権限ルールをバイパスできていたバグを修正

原文(英語)

Fixed a bug where commands excluded from sandboxing (via sandbox.excludedCommands or dangerouslyDisableSandbox) could bypass the Bash ask permission rule when autoAllowBashIfSandboxed was enabled

概要

Claude Code 2.1.34では、重要なセキュリティバグが修正されました。このバグでは、サンドボックスから除外されたコマンドが、本来必要な権限確認をスキップして実行できてしまう問題がありました。この修正により、サンドボックス除外コマンドでも適切に権限確認が行われるようになり、セキュリティが強化されました。

基本的な使い方

サンドボックス設定の正しい理解

Claude Codeのサンドボックス機能は、コマンドの実行を安全に制御するための仕組みです。主な設定オプションは以下の通りです。

json
{
  "sandbox": {
    "excludedCommands": ["docker", "git"],
    "autoAllowBashIfSandboxed": true
  }
}

今回の修正により

  • excludedCommandsに含まれるコマンドでも、権限確認が適切に行われるようになりました
  • autoAllowBashIfSandboxedが有効でも、除外コマンドは自動承認されなくなりました

実践例

Docker コマンドの安全な使用

以前は、DockerコマンドをexcludedCommandsに追加すると、権限確認なしで実行される可能性がありました。

json
{
  "sandbox": {
    "excludedCommands": ["docker"],
    "autoAllowBashIfSandboxed": true
  }
}

修正後の動作

bash
# Claude がこのコマンドを実行しようとすると...
docker run -d --name myapp -p 8080:8080 myimage

# ユーザーに権限確認が表示されます
# 以前: 自動実行される(セキュリティリスク)
# 現在: 明示的な承認が必要

Git コマンドでのセキュリティ向上

リモートリポジトリへのプッシュなど、重要なGit操作でも権限確認が確実に行われます。

json
{
  "sandbox": {
    "excludedCommands": ["git"],
    "autoAllowBashIfSandboxed": true
  }
}

修正後の動作

bash
# Git push コマンドの実行時
git push origin main

# 修正前: autoAllowBashIfSandboxed=trueの場合、自動実行される可能性
# 修正後: 必ずユーザー承認が求められる

dangerouslyDisableSandbox フラグの適切な動作

一時的にサンドボックスを無効化する場合でも、権限確認は維持されます。

bash
# Claude がこのように実行しようとした場合
# (dangerouslyDisableSandbox: true を使用)

# 修正前: 権限確認がスキップされる可能性
# 修正後: 必ず権限確認が行われる

セキュリティレイヤーの強化

今回の修正により、以下のセキュリティレイヤーが適切に機能するようになりました。

json
{
  "permissions": {
    "Bash": {
      "ask": ["docker *", "git push*", "rm -rf*"]
    }
  },
  "sandbox": {
    "excludedCommands": ["docker", "git"],
    "autoAllowBashIfSandboxed": true
  }
}

結果

  • excludedCommandsに含まれていても、permissionsaskルールが適用されます
  • 危険なコマンドパターンに対する保護が確実に機能します

注意点

  • 既存の設定を見直す: autoAllowBashIfSandboxed: trueを使用している場合、excludedCommandsに含まれるコマンドの権限確認が以前より厳格になります
  • 権限確認の頻度増加: セキュリティ向上のため、一部のコマンドで権限確認が必要になる場合があります。これは意図された動作です
  • 許可リストの活用: 頻繁に使用する安全なコマンドは、permissions設定で適切に許可することを検討してください
json
{
  "permissions": {
    "Bash": {
      "allow": ["git status", "git diff", "docker ps"]
    }
  }
}
  • セキュリティとUXのバランス: より安全になった一方、承認が必要なコマンドが増える可能性があります。ワークフローに応じて設定を調整してください

関連情報