Audit Claude Code settings.json for security vulnerabilities — detect allow-bypasses-deny, missing sensitive file denies, and overly broad permissions. Use after any settings.json change.
Audit Claude Code settings.json for security vulnerabilities — detect allow-bypasses-deny, missing sensitive file denies, and overly broad permissions. Use after any settings.json change.
version
1.0.0
user-invocable
true
model
sonnet
tools
["Read","Glob","Grep","Bash"]
Settings Security Audit
Overview
Audit all Claude Code settings files for security vulnerabilities. Born from a real incident: Bash(cat:*) in allow rules silently bypassed Read deny rules for weeks.
Core principle: An allow rule that can replicate a denied tool's functionality is a security hole, not a feature.
Process
Step 1: Collect Settings Files
Read all settings files that exist (skip missing ones silently):
File
Scope
~/.claude/settings.json
Global settings
~/.claude/settings.local.json
Global local override
.claude/settings.json
Project settings (cwd)
.claude/settings.local.json
Project local override
Parse each file's permissions object, which contains allow and deny arrays.
Step 2: Check Allow-Bypasses-Deny (CRITICAL)
This is the highest priority check. For each deny rule, verify no allow rule can bypass it.
Bypass mapping — if deny blocks the left column, allow must not contain the right column: