Claude Code 2.1.98 リリース:Bash権限バイパス修正とサブプロセスサンドボックス強化
Claude Code 2.1.98では、Bashツールの権限チェックに関する複数の重大なセキュリティ修正と、Google Vertex AI セットアップウィザードの追加、サブプロセスサンドボックス機能の強化が行われました。
背景
Claude Codeはファイル編集やBashコマンド実行を行うエージェントとして動作するため、権限チェックの正確性はセキュリティの根幹を成します。今回のリリースでは、権限の自動許可ロジックに潜む複数のバイパス経路が特定・修正されており、運用環境での安全性向上に直結する変更が中心となっています。
あわせて、Perforce連携・Google Vertex AI・LSP対応・OTEL追跡など、エンタープライズ利用を想定した機能拡充も含まれています。
技術的な変更
Bashツール権限チェックの修正
Bashツールの権限バイパスに関する修正が本リリースの核心です。バックスラッシュエスケープされたフラグが読み取り専用として自動許可され、任意コード実行につながる脆弱性が修正されました。複合Bashコマンドが auto および bypass-permissions モードで強制許可プロンプトをスキップする問題、環境変数プレフィックス付きの読み取り専用コマンドが既知の安全変数(LANG・TZ・NO_COLOR 等)以外でプロンプトなしに実行される問題も合わせて修正されています。
/dev/tcp/... や /dev/udp/... へのリダイレクトが自動許可されていた問題も修正されました。これらはネットワークアクセスに利用できるパスであり、プロンプトなしに実行されることはセキュリティリスクとなっていました。
ワイルドカード権限ルールの誤動作も修正されています。Bash(cmd:*) や Bash(git commit *) のルールが余分なスペースやタブを含むコマンドにマッチしない問題、Bash(...) の拒否ルールが cd を含むパイプコマンドでプロンプトに降格される問題が解消されました。また、cut -d /・paste -d /・awk '{print $1}' file・% を含むファイル名などで誤った権限プロンプトが表示されていた問題も修正されています。
サブプロセスサンドボックスの強化
CLAUDE_CODE_SUBPROCESS_ENV_SCRUB 環境変数を設定することで、Linux上でPID名前空間分離によるサブプロセスサンドボックスが有効になりました。あわせて CLAUDE_CODE_SCRIPT_CAPS 環境変数が追加され、セッションごとのスクリプト実行回数を制限できるようになっています。これらはセキュリティ要件の厳しい環境での運用を想定した機能です。
Google Vertex AI セットアップウィザード
ログイン画面の「3rd-party platform」選択時に、GCP認証・プロジェクトとリージョンの設定・認証情報の検証・モデルピン留めまでをガイドするインタラクティブなセットアップウィザードが追加されました。これまで手動で設定する必要があったVertex AI連携が、UIから一連のフローで完結するようになっています。
Perforce連携
CLAUDE_CODE_PERFORCE_MODE 環境変数が追加されました。この変数を設定すると、Edit・Write・NotebookEdit ツールは読み取り専用ファイルへの操作時にサイレントに上書きする代わりに p4 edit のヒントとともにエラーを返します。Perforceのチェックアウトモデルに合わせた安全なワークフローが実現します。
LSP・OTEL・その他の機能追加
LSP(Language Server Protocol)では、Claude Codeが clientInfo フィールドを通じて言語サーバーに自身を識別するようになりました。OTEL(OpenTelemetry)トレーシングが有効な場合、BashツールのサブプロセスにW3C準拠の TRACEPARENT 環境変数が渡されるようになり、子プロセスのスパンがClaude Codeのトレースツリーに正しく紐づけられます。
その他の追加機能として、以下が挙げられます:
- バックグラウンドスクリプトからのストリーミングイベント受信用の Monitor ツール
-
--exclude-dynamic-system-prompt-sectionsフラグ(printモードでのクロスユーザープロンプトキャッシング改善用) - ステータスライン JSON 入力への
workspace.git_worktreeフィールド追加
安定性・UX修正
セッション管理・UI表示・設定の反映に関する複数の修正も含まれています。主要なものを以下に示します:
- 429レートリミット時に
Retry-Afterが小さい値の場合、全試行を約13秒で消費してしまう問題を修正(指数バックオフを最小値として適用) -
permissions.additionalDirectoriesの変更がセッション中に即時反映されるよう修正 - JavaScriptプロトタイププロパティ名(例:
toString)に一致するルール名がsettings.jsonをサイレントに無視させる問題を修正 -
--dangerously-skip-permissionsがBashによる保護パスへの書き込み承認後にaccept-editsモードへ降格していた問題を修正 - マネージド設定の許可ルールが管理者削除後もプロセス再起動まで残存していた問題を修正
-
/resumeピッカーの複数の問題(フィルタリロードによる検索状態消失・空リストでの矢印キー無効化・クロスプロジェクトの陳腐化等)を修正
設計判断
権限チェックのデフォルト方向は「疑わしければプロンプト」 という原則が今回の修正群から読み取れます。バックスラッシュエスケープ・余分な空白・cd を含むパイプなど、パース時の曖昧さをセーフサイドに倒す形で一連の修正が行われており、利便性よりも安全性を優先する設計方針が一貫しています。
CLAUDE_CODE_SUBPROCESS_ENV_SCRUB や CLAUDE_CODE_PERFORCE_MODE のようにオプトイン型の環境変数でセキュリティ機能を提供するアプローチは、デフォルトの動作を変えずに厳格な運用環境向けの設定を可能にするもので、後方互換性を維持しながら機能を拡充する判断といえます。
まとめ
Claude Code 2.1.98は、Bashツールの権限バイパス経路を複数の観点から体系的に塞ぐと同時に、Vertex AI・Perforce・OTELなどエンタープライズ利用に向けた機能を着実に拡充したリリースです。権限チェックの「疑わしければプロンプト」原則の徹底と、オプトイン型サンドボックス強化の組み合わせにより、セキュリティ要件の高い本番環境での利用基盤が整備されています。