AIToday
AIコーディングAI安全性・アラインメントZenn AI/ML掲載日時: 2026年10月20日 13:00

Claude Codeのフック、rm -frの回避を許す

LINEで送る
Claude Codeのフック、rm -frの回避を許す

3つのポイント

  1. 何が起きたか

    Claude Code 2.1.304の実セッションで、PreToolUseフックが『rm -rf build』を終了コード2で阻止したが、『rm -fr build』は実行されフォルダが削除された。

  2. なぜ重要か

    フックはコマンド文字列のパターン照合のみのため、サンドボックスではなく危険な定番形を拾う初期網として機能する。著者は権限設定や作業前のgitコミットとの併用を勧めている。

わからないところ、AIに聞けます

質問と回答はこのページに公開されます。

こういう要約が、毎朝あなたのメールに届きます。

背景と解説

検証は使い捨てフォルダで、非対話モードのclaude -pと、コマンドごとの承認が干渉しないよう--dangerously-skip-permissionsを付けて実行された。著者はこのオプションを通常業務で使わないよう明示的に警告している。承認をスキップしても、フックが終了コード2を返せばコマンドは停止し、エラー文はClaudeに返された。著者はClaude Codeが渡すのと同じ形のJSONをスクリプトに与える単体テストも行った。この単体実行では『git push --force origin main』と『git reset --hard HEAD~3』は停止し、『rm -fr build』と『rm -r -f build』は通過した。後者2つは実セッションでは行われていない。

スクリプトはコマンド読み取りにjqに依存しており、著者は『command -v jq』の行がなぜ重要かを示す。これがないと、jqのない環境では何も読めずに終了コード0となり、すべてが通過してしまう。しかも終了コードが0なので、onFailureは失敗とみなさない。実セッションでPATHからjqを外すと、チェック付きの版は『jq is required』のメッセージを出して『ls build』さえブロックしたが、チェックなしの版は『rm -rf build』がフォルダを削除するのを許した。

onFailure設定はバージョン2.1.295で導入され、2.1.294ではスクリプトパスを間違えてもコマンドは止まらなかった。著者が試したのはスクリプト欠如のケースのみで、ドキュメントでは0/2以外の終了コード、タイムアウト、読み取れないJSON出力も失敗として扱われると注記している。最後の助言は、確実にブロックしたいコマンドには権限設定を使い、フックは初期網として残し、信頼する前にダミーフォルダで動作を確認することだ。

よくある質問
『rm -rf build』は阻止されたのに、なぜ『rm -fr build』は通過したのか?
フックスクリプトはコマンド文字列から『rm -rf』のような固定パターンを探す。フラグを『rm -fr』に入れ替えると一致しなくなり、スクリプトは終了コード0で終了してコマンドが実行される。
onFailure設定は何をするのか?
Claude Code 2.1.295で追加された。『onFailure: "block"』を指定すると、フックスクリプトが起動できない場合や失敗した場合に、ツール呼び出しを通過させずブロックする。
このようなフックを信頼する前に何を確認すべきか?
著者はClaude Codeがバージョン2.1.295以降であることを確認し、ダミーのフォルダでrm -rfを依頼して実際にブロックされるか検証するよう勧めている。
LINEで送る

あなたの仕事に関係するAIニュースを、毎朝お届けします。

業界と使っているAIツールを選ぶと、仕事に関係するニュースが毎朝届きます。

登録無料・Googleアカウントなら30秒・いつでも解除できますAITodayについて →

AIに質問

この記事についてわからないことをAIに質問できます。AIはこの記事・AIToday の過去記事・Wikipedia を読み、出典を付けて答えます。Q&Aはこのページに公開され、他の読者も読めます。

質問と回答はこのページに公開されます。

関連記事

ChatGPT広告、低所得アカウントほど高頻度表示

研究者が所得3水準・人種3グループの米国おとりアカウント91件を運用したところ、広告はアカウント作成から約2週間後に表示され始め、低所得アカウントほど広告の表示頻度が高かった

NEWITmedia AI+1時間前

マイクロソフト、企業内AIエージェントの統制強化へ

マイクロソフトは2026年7月に発表したサイバーセキュリティシステム「Project Perception」を拡張し、組織内で稼働するAIエージェントの監視・統制に乗り出す方針を示した

NEWImpress Watch1時間前

Sarashina3 miniは10問中1問

GPTがブラインド判定した日本語40課題で、Sarashina3 miniの意味を保てた書き直しは10問中1問

NEWZenn AI/ML1時間前

Qt/QML画像ビューアにCMakeでSVGアイコン追加

Zenn連載の最新回で、著者はqt_add_qml_moduleのRESOURCESにパスを列挙し、Qt/QML画像ビューアにSVGツールバーアイコンを追加した

NEWZenn AI/ML1時間前

AIコーディングツール更新、変更履歴は「不具合修正」のみ

Claude Code 2.1.303が公開されたが、変更履歴には個別の修正が列挙されず「不具合修正と信頼性の改善」とだけ記され、実際に何が変わったのか利用者には分からないままだ

NEWZenn AI/ML1時間前

Claudeに大規模作業を任せる3機能を開発

tanashun氏はtanacode 2.0.0のチャット機構をターミナル画面の読み取りからstream-jsonへ作り直し、親子セッション・チェックリスト・最適化圧縮を組み合わせて1日で完了した

NEWZenn AI/ML1時間前
次の記事へMamdani、連邦のAI規制放棄を批判