Claude Code v2.1.149 リリース — セキュリティ修正とUI改善を含む大型パッチ

anthropics/claude-code

Claude Code v2.1.149 では、PowerShellのパーミッションバイパスやgit worktreeのサンドボックス設定ミスなど複数のセキュリティ修正に加え、/usage のコスト内訳表示やGFMチェックボックスレンダリングなどのUX改善が施された。

背景

今回のリリースは、セキュリティ上の懸念とユーザー体験の両面で積み重なったフィードバックへの対応が中心となっている。特にPowerShell環境でのパーミッション制御に複数の抜け穴が発見されており、ワークスペース外へのファイルアクセスを許してしまう可能性があった。また、macOS環境で find コマンドがシステムのファイル記述子テーブルを枯渇させホストをクラッシュさせる深刻な問題も含まれていた。

UI面では、/usage コマンドが使用量の合計しか表示できなかったため、どの機能がコストを押し上げているかを把握しにくいという課題があった。これらを一括解消する形で本バージョンがリリースされた。

技術的な変更

セキュリティ修正:PowerShellのパーミッション制御

PowerShell環境における複数のパーミッション制御の抜け穴が修正された。これらは連鎖すると、意図したワークスペース外のファイルを読み取れる状態になりうるものだった。

具体的には以下の3点が修正されている:

  • 組み込み cd 関数によるバイパス: cd..cd\cd~X: といった組み込み形式の cd がワーキングディレクトリを変更してもパーミッションチェッカーに検知されず、後続コマンドがワークスペース外を読めてしまう問題
  • プレフィックス/ワイルドカード許可ルールの不備: PowerShell(dotnet.exe build *) のような前方一致ルールがネイティブ実行ファイルやスクリプトを事前承認しない問題
  • 変数トラッキングの陳腐化: パーミッション解析パーサーが cd/pushd/popd をまたいで PWD/OLDPWD/DIRSTACK の古い追跡値を信頼してしまうギャップ

これら3件はいずれも「シェルのディレクトリ状態をパーミッションチェッカーが正確に追跡できていない」という共通の技術的課題に起因している。

セキュリティ修正:git worktreeのサンドボックス設定

git worktree 環境でのサンドボックス書き込み許可リストが、共有 .git ディレクトリのみを対象とすべきところをメインリポジトリルート全体に適用していた問題が修正された。修正後は .git ディレクトリのみが対象となり、hooks/config は引き続き拒否される。

macOS固有の修正:find によるvnodeテーブル枯渇

Bashツール内の find コマンドが大きなディレクトリツリーを走査する際に、macOSのシステムファイル/vnodeテーブルを使い果たしてホストがクラッシュする問題が修正された。サンドボックス化されたツール実行であっても、OSレベルのリソースを枯渇させる可能性があることを示す事例となっている。

機能追加:/usage のカテゴリ別内訳表示

/usage コマンドが使用量の合計だけでなく、スキル・サブエージェント・プラグイン・MCPサーバーごとのコスト内訳を表示できるようになった。どの機能がリミットを消費しているかを可視化することで、MCPサーバーの使いすぎやサブエージェントの多用といったコスト要因を特定しやすくなる。

機能追加:GFMタスクリストチェックボックスのレンダリング

Markdown出力で GFM(GitHub Flavored Markdown) のタスクリスト構文 - [ ] todo / - [x] done がプレーンな箇条書きではなくチェックボックスとして描画されるようになった。コードレビューのフィードバックやToDoリストをClaude Codeで扱う際の視認性が向上する。

その他のUI/UX修正

多数の細かい表示・操作上のバグも修正されている:

  • /diff のキーボードスクロール: 詳細ビューでカーソルキー・j/kPgUp/PgDnSpaceHome/End によるスクロールが可能になった
  • Ctrl+O トランスクリプトビュー: 開いた瞬間の状態でフリーズせず、新着メッセージをテールするよう修正
  • プロンプト履歴の編集保持: 履歴エントリを呼び出して編集中に上下キーで移動しても編集内容が失われなくなった
  • /feedback の改善: コンテキスト圧縮前の会話も報告に含まれ、長いセッション初期の問題をトリアージしやすくなった
  • Enterprise向け: allowAllClaudeAiMcps マネージド設定が追加され、managed-mcp.json と並行してclaude.aiクラウドMCPコネクターを読み込めるようになった

設計判断

PowerShell固有のパーミッション修正が3件まとめて含まれている点は注目に値する。組み込み cd 関数のバイパス、ワイルドカード許可ルールの不備、変数トラッキングの陳腐化という3つの問題は、いずれも「ディレクトリ変更操作後のシェル状態をパーミッションチェッカーが正確に把握できていない」という技術的課題の異なる側面として整理できる。

git worktreeの修正は、「共有リソースの許可範囲をどこまで認めるか」という境界定義の誤りに対する修正であり、最小権限の原則に沿って .git ディレクトリのみを許可対象に絞る方向の変更となっている。hooks/config を明示的に拒否対象として挙げている点は、許可範囲の縮小が意図的であることを示している。

まとめ

v2.1.149 は、PowerShellとgit worktreeにおける複数のパーミッション制御の欠陥を修正しつつ、/usage のコスト可視化やGFMチェックボックスレンダリングなど実用的な機能追加を同時に届けるリリースとなった。セキュリティ修正の3件がいずれも「シェルのディレクトリ状態追跡」という共通の技術的課題に関連している点は、この領域の堅牢性向上が継続的なテーマとなっていることをCHANGELOGから読み取れる。

記事メタデータ

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

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

品質レビュー結果

Review Status:
リトライ後承認
Review Count:
2回 (改善を経て承認)
Reviewed by:
Gemini 2.5 Pro for DiffDaily

Review Criteria:

記事構成 ✓ PASS

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

「リード文(総論)→背景・技術詳細(各論)→まとめ(結論)」の構成が明確です。任意項目の「設計判断」も含まれており、記事の深みを増しています。

カスタムMarkdown構文 ✓ PASS

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

コミットIDの短縮形リンクが正しく使用されています。記事内にコードブロックはありませんが、本記事の性質上、これは問題ありません。

対象読者への適合性 ✓ PASS

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

PowerShellのパーミッション制御やgit worktreeなど、専門知識を持つエンジニア向けの内容となっており、過度な初心者向けの説明がなく適切です。

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

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

各セクション、各パラグラフが総論→各論の構造を持ち、トピックセンテンスが明確です。1段落1トピックの原則も守られており、非常に読みやすい構成です。

Diff内容との照合 ✓ PASS

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

記事はコードブロックを含みませんが、その内容はPRで変更されたCHANGELOG.mdの記述を正確に反映し、要約・解説しています。

技術用語の正確性 ✓ PASS

技術用語の正確な使用

「パーミッションバイパス」「vnodeテーブル」「GFM」など、CHANGELOG.mdで使われている技術用語を正確に使用しています。

説明の技術的正確性 ✓ PASS

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

CHANGELOG.mdの箇条書きを論理的に再構成し、例えばPowerShellの複数の修正を「シェルのディレクトリ状態追跡の不備」という共通課題としてまとめるなど、技術的に正確かつ洞察に富んだ説明がなされています。

事実の突合 ✓ PASS

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

記事内のすべての主張は、PRで提供されたCHANGELOG.mdの内容に完全に基づいています。根拠のない推測や捏造(ハルシネーション)は見られません。

数値・固有名詞の確認 ✓ PASS

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

バージョン番号「2.1.149」やコミットID「64e5382」など、記事内のすべての数値・固有名詞は正確です。

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

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

記事のタイトルは、PRで更新されたCHANGELOG.mdの内容(v2.1.149の変更点)を的確に要約しており、主題と一致しています。

外部知識の正確性 ✓ PASS

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

記事の内容はすべてPR内のCHANGELOG.mdに由来しており、サポート状況やリリース予定といったPR外の知識は含まれていません。

時間表現の正確性 ✓ PASS

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

「〜が修正された」「〜できるようになった」といった表現は、バージョンアップの変更点を記述する上で正確であり、時間表現の歪曲はありません。