はじめに
2026年9月24日にリリースされた Claude Code v2.1.282 には、セキュリティ寄りの破壊的変更が複数含まれています。中心となるのは「リポジトリに置かれた設定ファイル経由で、ユーザーの意図しない挙動を強制できてしまう抜け穴」を塞ぐ一連の変更です。
具体的には以下の3系統です。
- プロジェクト/ローカル設定に書かれたテレメトリ関連の変数が無視されるようになった
-
anthropic-skills/claude-aiという名前空間が claude.ai 同期スキル専用になった - サンドボックスの除外コマンド設定や、Windows/WSL の管理者ポリシーが厳格化された
加えて、権限ルールの抜け穴修正や、拡張思考(reasoning)がセッション再開時に失われる不具合の修正など、日常的に影響のある修正も多数含まれています。
📌 影響を受ける人
- リポジトリの
.claude/settings.json(project/local settings)でテレメトリやサンドボックス設定を構成しているチームanthropic-skills/claude-aiという名前でスキル・コマンド・MCP サーバーを自作している人- 途中に
:*を含む Bash 権限ルールを設定ファイルに書いている人- Windows/WSL 環境で管理者ポリシー(managed settings)を運用している人
変更の全体像
今回の変更は、一言でいうと「リポジトリ側の設定(project/local settings)から、ユーザー・組織側の制御(user/managed settings)を上書きできる経路を塞ぐ」という方向性で統一されています。
これまでは「リポジトリを clone しただけで、そのリポジトリの設定ファイルが自分のテレメトリ送信先やサンドボックス除外設定を書き換えてしまう」というリスクがありました。v2.1.282 ではこの経路が塞がれ、悪意あるリポジトリや意図しない設定ファイルによる挙動改ざんへの防御力が上がっています。
変更内容
1. テレメトリ変数がプロジェクト/ローカル設定で無視される(change-001)
CLAUDE_CODE_ENABLE_TELEMETRY や OTEL_LOG_* など、テレメトリの有効化・送信先エンドポイント・内容記録に関わる変数が、project/local settings に書かれていても無視されるようになりました。
| 項目 | v2.1.282 より前 | v2.1.282 以降 |
|---|---|---|
| テレメトリ変数の設定場所 | project/local/user/managed すべて有効 | project/local は無視、user または managed のみ有効 |
| 無視された変数の可視性 | なし | 起動時通知、/status、claude doctor に表示 |
⚠️ Breaking Change
リポジトリの.claude/settings.jsonでテレメトリ送信先を構成しているチームは、その設定がサイレントに無効化されます(通知は出ますが見落としやすい)。/statusまたはclaude doctorで確認してください。
2. anthropic-skills / claude-ai 名前空間の専用化(change-002)
この2つの名前空間は、claude.ai から同期したスキル専用になりました。
-
Skill(anthropic-skills:*)/Skill(claude-ai:*)の許可ルールは、claude.ai 同期スキルだけが対象 - 同名のスキルフォルダ・コマンドファイル・ワークフローコマンドは読み込まれなくなる
- 同名の MCP サーバーは、スキルとプロンプトを一覧に表示しなくなる(ツール自体は引き続き使用可能)
💡 Tips
自作の MCP サーバーやスキルにanthropic-skills/claude-aiという名前を使っている場合は、別名にリネームすれば一覧表示は復活します。
3. サンドボックス・管理設定の厳格化(change-003)
制限ポリシーが有効な環境では、リポジトリ側で除外コマンドを追加しても効かなくなります。組織として制限を配布している場合は、除外設定自体を managed settings 側に定義する必要があります。
4. 権限ルール・managed settings のバグ修正(change-004)
権限ルールの「抜け穴」を複数修正しています。特に重要なのは以下です。
- 途中に
:*を含む Bash 権限ルール(例:Bash(npm run:*, test)のような形)が設定ファイルでは無視されていた(--allowedToolsでは有効だった)バグを修正。現在はどこに書いても有効になります -
disableClaudeAiConnectorsなどの真偽値ロックキーで、値の型が違う場合にロックが無視されていたバグを修正 - managed の
permissions/autoMode/worktree/attributionブロックで、入れ子の値が1つ不正なだけでブロック全体が無視されていたバグを修正
// Before: settings.json に書いても効かなかったルールの例
{
"permissions": {
"allow": ["Bash(npm run:*, build)"] // :* が途中にあると無視されていた
}
}
// After: v2.1.282 では正しく解釈される(起動時に警告表示)
⚠️ Breaking Change
これまで「効いていなかった」権限ルールが、v2.1.282 では有効になります。既存の Bash 権限ルールを見直し、意図せず許可範囲が広がっていないか確認してください。
影響と対応
| 変更 | 対応が必要な人 | 具体的なアクション |
|---|---|---|
| テレメトリ変数の無視 | リポジトリ設定でテレメトリを構成しているチーム | 設定を user または managed settings に移動 |
| 名前空間の専用化 |
anthropic-skills/claude-ai を自作している人 |
別名にリネーム |
| サンドボックス厳格化 | managed settings で制限ポリシーを配布している組織 |
sandbox.excludedCommands を managed 側に移動 |
| 権限ルールのバグ修正 |
:* を含む Bash ルールを設定ファイルに書いている人 |
既存ルールの許可範囲を再確認 |
これに加えて、/status と claude doctor に「無視された設定」が一覧表示されるようになったため、アップデート後はまずこの2つのコマンドを実行して、意図しない設定が無効化されていないか確認するのがおすすめです。
コード例
CLAUDE.md やチームのドキュメントに以下のような追記をしておくと、今後同じ問題で混乱するのを防げます。
## 設定 / テレメトリ (v2.1.282〜)
- CLAUDE_CODE_ENABLE_TELEMETRY・OTEL_LOG_* などのテレメトリ変数は
project/local settings では無視される。
- 設定するなら user (~/.claude/settings.json) または
managed settings に置くこと。
## スキル / MCP 命名規則
- 自作のスキル・コマンド・MCP サーバーに
`anthropic-skills` / `claude-ai` という名前を使わない
(claude.ai 同期スキル専用の予約名前空間になったため)。
## サンドボックス / 管理設定
- 制限ポリシーがある環境では、sandbox.excludedCommands は
project/local settings ではなく managed settings 側で定義する。
## 権限設定
- Bash 権限ルールで途中に :* を含む書き方
(例: Bash(npm run:*, build)) が設定ファイルでも有効になった。
既存ルールの許可範囲を見直すこと。
まとめ
v2.1.282 は、機能追加よりも「設定の抜け穴を塞ぐ」ことに重心を置いたリリースです。
- project/local settings 経由でテレメトリ・サンドボックス除外を上書きできる経路が塞がれた
-
anthropic-skills/claude-aiは claude.ai 同期スキル専用の予約名前空間になった - 権限ルール(特に
:*を含む Bash ルール)や managed settings のパーシングに複数のバグ修正が入った - 起動時通知・
/status・claude doctorで「無視された設定」を確認できるようになった
いずれも「知らないうちに制限がすり抜けられていた」「知らないうちに設定が無効化されていた」というギャップを埋めるための変更です。特にチームで managed settings やプロジェクト設定を運用している場合は、アップデート直後に claude doctor を一度実行して、無視されている設定がないか確認することを強くおすすめします。