Skip to content

原文(日本語に翻訳)

Gitワークツリーのサンドボックス書き込み許可リストが、共有 .git ディレクトリのみ(hooks/config は拒否)をカバーすべきところ、メインリポジトリのルート全体をカバーしてしまっていた問題を修正しました。

原文(英語)

Fixed the sandbox write allowlist in git worktrees covering the entire main repository root instead of only the shared .git directory (with hooks/ and config denied)

概要

git worktree を使用してClaude Codeを実行している場合に、サンドボックスの書き込み許可範囲が想定より広くなっていたセキュリティ上の問題が修正されました。本来は共有の .git ディレクトリのみに限定されるべき書き込み許可が、メインリポジトリのルートディレクトリ全体に適用されてしまっていました。

影響を受けていたケース

以下のようなワークフローで git worktree を使用している場合に影響があります。

bash
# メインリポジトリ
/repos/myproject/ ここが誤って書き込み許可されていた
├── .git/
   ├── worktrees/
   └── feature-branch/
   └── ...
├── src/
└── ...

# ワークツリー
/repos/myproject-worktree/ ここで作業している場合
├── .git (ファイル、共有.gitへのポインタ)
├── src/
└── ...

ワークツリーから作業中に、サンドボックスがメインリポジトリ (/repos/myproject/) 全体への書き込みを誤って許可していました。

修正後の動作

2.1.149以降では、書き込み許可は正しく以下の範囲のみに限定されます。

  • 共有 .git ディレクトリ(必要な共有状態のみ)
  • 拒否: .git/hooks/(フック改ざんを防止)
  • 拒否: .git/config(設定改ざんを防止)

実践例

Gitワークツリーを使ったClaude Codeの安全な利用

bash
# 安全なワークツリーの作成
git worktree add ../myproject-feature feature-branch

# ワークツリー内でClaude Codeを実行
cd ../myproject-feature
claude

修正後は、Claude Codeがワークツリー内で動作する際に、メインリポジトリへの意図しない書き込みが発生しません。

注意点

  • git worktree を使用していない通常のリポジトリには影響しません
  • ワークツリーを多用する並行開発フローで特に重要なセキュリティ修正です
  • git hooksgit config が意図しく変更されるリスクが低減されました

関連情報