Claude Codeのdeny rules(禁止ルール)に、深刻な脆弱性が見つかった。
50個以上のサブコマンドを連結すると、すべてのdeny rulesが無効化される。
Adversa AIの調査で判明した。内部的に50サブコマンドの上限があり、50を超えるとセキュリティチェックがスキップされて「ユーザーに確認」にフォールバックする。自律運行中(--dangerously-skip-permissions等)ではそのまま実行される。
何が起きるか
settings.jsonにこう書いてあるとする:
{
"permissions": {
"deny": ["Bash(rm *)"]
}
}
rm -rf /important-data は単体ではブロックされる。しかし:
true; true; true; true; true; true; true; true; true; true; true; true; true; true; true; true; true; true; true; true; true; true; true; true; true; true; true; true; true; true; true; true; true; true; true; true; true; true; true; true; true; true; true; true; true; true; true; true; true; true; rm -rf /important-data
これはブロックされない。50個のtrue(何もしないコマンド)の後に危険なコマンドを置くだけで、deny rulesを完全にバイパスできる。
同時期に起きた実被害
この脆弱性と同じ4月に報告された実害:
- $1,446の無許可資金移動 — 取引所の全残高を勝手にスイープ
- $367損失+アカウント停止 — Claude生成スクリプトがAPI制限違反
- 物理座標を公開サイトにアップロード — CLAUDE.mdの「PII禁止」を17セッション無視
deny rulesを設定していても安全ではない。
パッチ状況
Anthropicはv2.1.90(4月6日リリース)でこの脆弱性を修正した。v2.1.90以上にアップデートしていれば、deny rules自体は正常に動作する。
ただし、deny rulesには構造的な限界がある:
- パターンマッチングに依存するため、コマンドの書き方を変えるだけで回避される可能性がある
- 新しいバイパス手法が見つかるたびにアップデートが必要
hookはdeny rulesの上位互換として、コマンドの内容を自由にスクリプトで検査できる。アップデートを待たずに自分で防御ロジックを書ける。
hookで防ぐ
PreToolUse hookはdeny rulesとは別の仕組みで動く。サブコマンド数の制限を受けない。
#!/bin/bash
# subcommand-chain-guard.sh
THRESHOLD=${CC_SUBCOMMAND_LIMIT:-20}
INPUT=$(cat)
CMD=$(echo "$INPUT" | jq -r '.tool_input.command // empty' 2>/dev/null)
[ -z "$CMD" ] && exit 0
SUBCOMMAND_COUNT=$(echo "$CMD" | tr ';' '\n' | tr '&' '\n' | tr '|' '\n' | grep -c '[^ ]' 2>/dev/null || echo 1)
if [ "$SUBCOMMAND_COUNT" -gt "$THRESHOLD" ]; then
echo "BLOCKED: Command contains $SUBCOMMAND_COUNT subcommands (limit: $THRESHOLD)." >&2
echo " Claude Code ignores deny rules after 50 subcommands." >&2
exit 2
fi
# 50個のtrue + 危険コマンドのパターンも検出
NOOP_COUNT=$(echo "$CMD" | grep -oE '\btrue\b|^:|;\s*:' | wc -l 2>/dev/null || echo 0)
if [ "$NOOP_COUNT" -gt 10 ]; then
echo "BLOCKED: Suspicious no-op padding detected ($NOOP_COUNT no-ops)." >&2
exit 2
fi
exit 0
settings.jsonに追加:
{
"hooks": {
"PreToolUse": [{
"matcher": "Bash",
"hooks": [{
"type": "command",
"command": "bash ~/.claude/hooks/subcommand-chain-guard.sh"
}]
}]
}
}
ワンコマンドで導入
cc-safe-setup(664個以上のhook)にこのhookが含まれている:
npx cc-safe-setup
個別にインストールする場合:
npx cc-safe-setup --install-example subcommand-chain-guard
キャッシュ破壊でトークンが数倍消費される問題
deny rulesバイパスだけでなく、git statusがキャッシュを壊す構造的問題も発見されている。Cache Breakage Fixで原因と対策をまとめた。
自分の環境が脆弱か確認する
Security Checkupで6つの質問に答えるだけで、deny rulesバイパスを含むClaude Codeの脆弱性を診断できる(無料)。
📖 トークン消費に困っているなら → Claude Codeのトークン消費を半分にする——800時間の運用データから見つけた実践テクニック(¥2,500・はじめに+第1章 無料)
📖 AIで事業を回す実体験を全記録 → Claude Code×個人事業 800時間の全記録(¥800・第2章まで無料)
⚠️ 新CVE公開(2026年4月): CVE-2026-21852でプロジェクト内の.claude/settings.jsonからAPIキーが窃盗される脆弱性が判明。npx cc-safe-setupはユーザーレベル設定のみを使用するため、この攻撃に免疫がある。詳細: Opus 4.7 Survival Guide(48問題追跡中)
⚠️ Opus 4.7をお使いの方へ(2026年4月)
Opus 4.7で安全分類器の不具合・トークン消費急増が報告されています。Safety Scannerで設定を無料チェック。対策はSurvival Guideを参照。
📚 主張と実態の乖離の事例の整理と防衛の手順 (2026 年 5 月 22 日発売)
本記事の「deny rules が50コマンド以上の連結で無効化される」 (Adversa AI の発見) は、 安全の規則の主張 (deny の場で阻止) と実態 (50件の上限で素通り) の乖離の最強の独立検証の事例。 Anthropic 自身が v2.1.136 で settings.autoMode.hard_deny を追加で正式に認知。 本書は同型の許可規則の素通りの系統を、 業界の独立検証の合図 (4件以上の業界の媒体の独立検証) と並べて整理。
5/22 発売の Claude Code Claim-Verify Handbook で、 同型の主張と実態の乖離の事例を 130 件 (本文 15 件 + 付録 D 115 件) に整理した試し読み (無料、 約 9,900 字、 日本語) を公開済。 14 件の防衛の手順と 5 件の自動の点検の道具 (4 件は cc-safe-setup の枝で取り込み待機、 1 件は本書の付録の標準の道具、 合計 165 件以上の試験が全件通過) も収録。
購入の検討の判断の助け (Should I buy the Claim-Verify Handbook?) の対話型の道具で、 無料の hook の解説で十分の場合の判定の経路も整理しています。
📚 関連の参考資料 (2026年5月28日追加)
本記事の内容と関連する整理を、 公開済の素材で articulate しています。
-
6月15日に予定された課金分離(当日に一時停止・再実施に備える)の判定の枠組み: Migration Playbook v2 (Gumroad、 $19) ——14日後の決定の整理、 9集積の文脈、 130件の claim-verify divergence の事例。 60秒の購入判定の道具で事前判定が可能
-
月次の追補の継続: Claude Code 事故まとめ(無料・月次) ——5月から12月の8ヶ月の章本文 (cache_control / 副の作業者 / AGENTS.md / Pro Max / 権限 / Skills / v2.1.150 / AUP false-positive)
-
9集積の枠組みの英語の長編 Gist: The 9-Cluster Framework: Mapping the Structural Failure Surface of Claude Code Operator Defense ——約3,300単語、 全件の集積の mechanism / symptom family / defense path の整理。 cluster 9 (Usage Policy classifier over-trigger on Opus、 25+件の起票) の対話型診断道具: 4問の質問→推奨経路の道具
-
約800件の MIT ライセンスの hook: cc-safe-setup (GitHub) ——9集積に対応する hook を整備した累計
800時間の Claude Code 運用データから、トークン消費の削減・複数ベンダー(Claude / Codex / Gemini / Copilot)の並行運用・事故の検知と復旧・サブエージェントの沈黙の失敗対策など、主題別の手引きを公開しています。気になる人は著者の本の一覧から、価格と評価を見て選べます。