0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Code v2.1.259|Read() deny をすり抜けていた経路が塞がる|毎日Changelog解説

0
Posted at

Claude Codeの公式Changelogをリリースから最速で翻訳・解説しています。

Read() の deny ルールが、オプション値や複合コマンド経由の読み取りには効いていませんでした。--ignore-revs-file=.envcd config && cat .env は判定に載らず素通りしていたわけです。v2.1.259 はこの穴を塞ぎ、あわせて組織向けの MCP 配布設定を追加しました。

  1. deny ルールの穴が塞がる。オプション値・git のファイルオペランド・cd A && cat B が判定対象に入った。
  2. managedMcpServers の追加。組織が HTTP/SSE の MCP サーバーを全ユーザーへ配れる。
  3. allowedMcpServers の守備範囲が変わるmanaged-mcp.json のサーバーは許可リストの対象外になり、アップグレード後に読み込まれる。

deny ルールがすり抜けていた経路

Bash 経由のファイル読み取りで、Read() の deny ルールが判定していない書き方がありました。 v2.1.259 は次の書き方を判定対象に加えました。

--ignore-revs-file=.env    # オプション値として渡されたファイル
-f.env
@file
cd DIR && cat FILE         # 複合コマンド

git diffgit grep のファイルオペランドも同じく判定外でした。Read(.env) のような deny ルールを書いていても、git diff -- .env の形なら Bash 側の判定を通過していました。

再帰系の扱いも変わりました。grep -rcp -r が deny 対象のファイルを含むディレクトリを走査する場合、Claude Code は v2.1.259 から確認を出します。コマンドラインに deny 対象のファイル名が現れない形でも、ディレクトリ側から引っかかります。

deny ルールで .env やクレデンシャルを守っていた設定は、v2.1.258 以前だとコマンドの書き方次第で判定を通り抜けていました。

組織が配る MCP サーバーと allowedMcpServers の線引き

v2.1.259 で managed setting に managedMcpServers が加わりました。組織側で HTTP/SSE の MCP サーバーを定義すると、配下の全ユーザーがそれを持った状態になります。エントリの書式は .mcp.json と同じ。ただしコマンド実行を指定したエントリを Claude Code は読み飛ばすので、組織から配れるのはリモート接続型に限られます。

同時に allowedMcpServers の意味が変わりました。対象はユーザーが自分で追加したサーバーだけ。組織から降ってくるサーバーは、この許可リストの判定を通りません。

managed-mcp.json に書かれたサーバーを allowedMcpServers から外すことで無効化していた環境では、v2.1.259 へのアップグレード後にそのサーバーが読み込まれます。読み込ませない側の設定は deniedMcpServers です。

運用に触れる修正

v2.1.259 のリリースには、設定の読み込みとセッション再開に関わる修正も入っています。

対象 変わったこと
~/.claude.json の同時更新 複数セッションが互いの変更を黙って巻き戻していた。ワークスペースの信頼設定がリセットされる問題と、MCP・プロジェクト状態の消失が解消
--permission-prompts none 無人の headless ホスト向けの新フラグ。確認が出る操作を Claude Code が自動で拒否し、権限モード (auto モード含む) の判断はそのまま働く
managed settings のパース失敗 管理設定ファイル・drop-in・MDM plist・HKLM の値が読めないとき、これまでは無言で未適用だった。Claude Code が起動を拒否し、壊れているソース名を出す
frontmatter の model: カスタムコマンドとスキルの model: を対話セッションが無視していた。auto モードが非対応モデルでターンを回す問題も直り、セッションのモデルを維持する
プロンプトキャッシュ テレメトリ無効のセッションで OAuth トークンが更新されると破棄されていた。ブロックする Stop フックの次のターンでも、その回の reasoning ごとキャッシュを外していた
--resume / --continue 保存済みセッションに中身のない添付エントリがあると --resume が失敗し、--continue が空の会話を開いていた
worktree 隔離 フック生成の worktree を拒否するケースと、メインの作業ツリーに届かない Bash ループ・xargs パイプライン・ランチャー経由コマンドを拒否するケースを修正
GitLab glab mr create/merge/close/reopen/note/update を認識し、折りたたみのツール要約に MR !N と出す。フッターの MR バッジも更新する

権限判定に寄ったリリース

v2.1.259 は権限判定と管理設定まわりに寄った内容でした。Read() の deny ルールは判定経路が広がり、MCP サーバーは組織配布とユーザー追加で扱いが分かれます。パフォーマンス面では headless/SDK セッションの初回ターンが最大 50 ミリ秒早くなりました。

前回: Claude Code v2.1.258|macOS 12 で起動できない退行が直る|毎日Changelog解説

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?