本文へ移動

AI Buildersのための最新のニュース、知見、事例を毎日お届け

運営会社
コーディングエージェントAnthropic

Claude Code 2.1.310 Windowsでフックが「素通り」する不具合を修正

Claude Codeの2.1.310で、Git Bashの無いWindowsでPreToolUseとPermissionRequestのフックが、コマンドが引用符の文字列だけの時にツールの呼び出しを通してしまう不具合が直った。フックで危ない操作を止めている人は、更新と設定の確認が要る。

記事の内容を自社でどう進めるか、内容が固まっていない段階でも相談できます。仕事の相談

毎週 1 回、その週の記事から 5 本と実践の 1 本を選んでメールで届けます。ニュースレターを購読する(無料)

Claude Code の動く画面。端末でファイルを読み、検索した結果が並ぶ
画像: Anthropic

米AnthropicはClaude Codeの2.1.310を日本時間の10月24日に公開し、Windowsでフック(ツールの実行の前後に自分のコマンドを走らせる仕組み)がツールの呼び出しを止めずに通してしまう不具合を直した。Git Bashが入っていない環境で、フックのコマンドが引用符で囲んだパスだけの時に起きていた。フックで危ない操作を止めているWindowsの利用者は、止めたつもりの呼び出しが通っていたおそれがあり、早めの更新が要る。

止めるはずのフックが通していた

Claude Codeの2.1.310のリリースノートによると、直ったのはPreToolUseとPermissionRequestの2つのフックだ。Windowsで、Git Bashが無く、フックのコマンドが引用符の文字列だけで書かれている時に、ツールの呼び出しを通していた。リリースノートは例として、引用符で囲んだパスを挙げている。

2つのフックは、どちらも呼び出しを止めるための入口だ。Claude Codeのフックの説明文書によると、PreToolUseはツールを動かす前に走り、終了コード2か「deny」の判定で呼び出しを止められる。PermissionRequestは許可の判断が要る時に走り、利用者に代わって許可か拒否を返す。ここが黙って通せば、利用者がフックに任せた確認の工程が抜け落ちる。

Git Bashの有無で動きが変わる

説明文書によると、フックのコマンドはmacOSとLinuxでは「sh -c」、WindowsではGit Bashで動く。Git Bashが無い時はPowerShellで動く。つまり、Git Bashを入れていないWindowsの環境だけが、ほかの環境と違う道を通っている。今回の不具合も、その違う道で起きていた。

同じ文書は、Git Bashの無いWindowsでは、終了コードの0と2だけをフックの判定として数えると書く。それ以外の終了コードは、拒否の無いJSONを出していても失敗の扱いになる。対処として、Git for Windowsを入れるか、別の場所に入れたGit Bashを「CLAUDE_CODE_GIT_BASH_PATH」で示し、新しいセッションを始めるよう求めている。フックごとに「"shell": "powershell"」を指定すれば、Git Bashに頼らずPowerShellで動かすこともできる。

クラウドやVSCodeの修正も

2.1.310には、ほかにも手元の作業に関わる修正が入った。Bedrock・Vertex・Foundryの環境と、テレメトリや必須でない通信を切った環境でも、Monitorのツールとプラグインのモニターが使えるようになった。「effort-2025-11-24」のベータの値や会話の途中のシステムメッセージを受け付けないゲートウェイの後ろで、要求が失敗する不具合も直り、Claude Codeはそれらを外して再送する。

ほかに、「cleanupPeriodDays」を非常に大きな値にした時に、貼り付けた画像などの新しいファイルを後片付けが消していた不具合を直した。base64やSVGのような詰まった文を含む会話で、「Prompt is too long」の後の圧縮が会話を残しすぎ、次の要求もまた失敗する不具合も直っている。VSCodeでは、計画の確認のカードで「Send feedback and keep planning」のボタンにEnterを押すと、意見を返さずに計画を承認してしまう不具合を直した。

クラウドのセッションでは、EnterpriseのカスタムロールにクラウドのセッションとRemote Controlの権限が加わり、Ownerがロールごとに使える人を決められるようになった。今回の更新の中心は、止めるはずの仕組みが止めていなかった穴を塞いだ点にある。

編集部の見方

編集部は、この修正が示すのは、フックのような確かめる工程も、環境ごとに本当に止まるかを試す必要があるという点だと見る。Git Bashの無いWindowsだけが別のシェルを通り、そこで止めるはずの呼び出しが通っていた。Windowsでフックを使う読者は、2.1.310に上げた上で、止めたい操作を1度わざと実行し、本当に止まるかを確かめるとよい。ただし、リリースノートは不具合がいつから起きていたかを書いておらず、影響の範囲はまだ分からない。

出典

に確認(日本時間)

  1. 2.1.310のリリースノート(github.com)
  2. Claude Codeのフックの説明文書(code.claude.com)

この記事をシェア

この記事は役に立ちましたか