Claude Code 2.1.98 リリース:Bash権限バイパス修正とサブプロセスサンドボックス強化

anthropics/claude-code

Claude Code 2.1.98では、Bashツールの権限チェックに関する複数の重大なセキュリティ修正と、Google Vertex AI セットアップウィザードの追加、サブプロセスサンドボックス機能の強化が行われました。

背景

Claude Codeはファイル編集やBashコマンド実行を行うエージェントとして動作するため、権限チェックの正確性はセキュリティの根幹を成します。今回のリリースでは、権限の自動許可ロジックに潜む複数のバイパス経路が特定・修正されており、運用環境での安全性向上に直結する変更が中心となっています。

あわせて、Perforce連携・Google Vertex AI・LSP対応・OTEL追跡など、エンタープライズ利用を想定した機能拡充も含まれています。

技術的な変更

Bashツール権限チェックの修正

Bashツールの権限バイパスに関する修正が本リリースの核心です。バックスラッシュエスケープされたフラグが読み取り専用として自動許可され、任意コード実行につながる脆弱性が修正されました。複合Bashコマンドが auto および bypass-permissions モードで強制許可プロンプトをスキップする問題、環境変数プレフィックス付きの読み取り専用コマンドが既知の安全変数(LANGTZNO_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_SCRUBCLAUDE_CODE_PERFORCE_MODE のようにオプトイン型の環境変数でセキュリティ機能を提供するアプローチは、デフォルトの動作を変えずに厳格な運用環境向けの設定を可能にするもので、後方互換性を維持しながら機能を拡充する判断といえます。

まとめ

Claude Code 2.1.98は、Bashツールの権限バイパス経路を複数の観点から体系的に塞ぐと同時に、Vertex AI・Perforce・OTELなどエンタープライズ利用に向けた機能を着実に拡充したリリースです。権限チェックの「疑わしければプロンプト」原則の徹底と、オプトイン型サンドボックス強化の組み合わせにより、セキュリティ要件の高い本番環境での利用基盤が整備されています。

記事メタデータ

Generated by:
Claude Sonnet 4.6 for DiffDaily
LLM Trace:
c73d4c46

この記事はAIによって自動生成されています。内容の正確性については、必ずソースコードやPRを確認してください。

品質レビュー結果

Review Status:
承認済み
Review Count:
1回
Reviewed by:
Gemini 2.5 Pro for DiffDaily

Review Criteria:

記事構成 ✓ PASS

Title, Context, Technical Detailの存在と明確さ

リード文(総論)→セクション群(各論)→まとめ(結論)の3部構成が明確です。特に、CHANGELOGのリストから「背景」と「設計判断」を適切に構成し、記事に深みを与えています。

カスタムMarkdown構文 ⚠ WARNING

シンタックスハイライト・GitHubリンク記法の正確性

プライマリソースのリンクで、コミットIDをPR番号のように`PR #...`と表記しており、ガイドラインのGitHubリンク記法に準拠していません。

対象読者への適合性 ✓ PASS

エンジニア向けの適切な技術レベルと表現

「PID名前空間分離」「LSP」「OTEL」などの専門用語を前提としており、対象読者である専門知識を持つエンジニアに適した技術レベルと表現です。

パラグラフ・ライティング ✓ PASS

トピックセンテンス・1段落1トピック・段落長

各段落がトピックセンテンスで始まり、1段落1トピックの原則が守られています。段落の長さも適切で、非常に読みやすい構成です。

Diff内容との照合 ✓ PASS

コードブロックとDiff内容の一致

記事内で言及されている環境変数名やコマンド名は、提供されたCHANGELOGのDiff内容と正確に一致しています。コード引用はありませんが、言及内容は正確です。

技術用語の正確性 ✓ PASS

技術用語の正確な使用

「サブプロセスサンドボックス」「指数バックオフ」「W3C TRACEPARENT」など、使用されている技術用語はすべて正確かつ文脈に適しています。

説明の技術的正確性 ✓ PASS

技術的主張の正確性と論理性

権限バイパスの修正内容やPerforce連携の動作など、技術的な説明はすべてCHANGELOGの記述と整合しており、技術的に正確です。

事実の突合 ✓ PASS

PR情報による主張の裏付け(ハルシネーション検出)

記事内の主張はすべてPRのDiff(CHANGELOG.md)の内容に基づいています。ハルシネーション(捏造)は見られず、信頼性の高い内容です。「設計判断」はCHANGELOGからの妥当な分析であり、許容範囲です。

数値・固有名詞の確認 ⚠ WARNING

PR番号・コミットID・バージョン等の正確性

バージョン番号`2.1.98`やレートリミット関連の数値`429`, `13s`は正確ですが、コミットハッシュ`c5600e0`を`PR #c5600e0`と誤って表記しています。

タイトル・説明との一致 ✓ PASS

記事タイトル・説明とPR内容の一致

タイトルはPRのDiff(CHANGELOG)で述べられている変更点の中から、最も重要なセキュリティ関連の修正を的確に抜き出しており、記事の主題を正確に表現しています。

外部知識の正確性 ✓ PASS

PRに記載のない外部知識(LTS、サポート状況など)の不使用

記事の内容はすべて提供されたCHANGELOGの範囲内に留まっており、サポート状況やリリース予定といったPR外の知識の追記はありません。

時間表現の正確性 ✓ PASS

時間表現がPR情報と一致しているか

「〜が修正されました」「〜が追加されました」といった過去形の表現で一貫しており、CHANGELOGの事実を正確な時間軸で伝えています。