Appearance
SEC406 / CLAUDE-GIT-ADD-PERMISSION
SEC406 flags shared Claude settings when permissions.allow grants blanket git add staging authority.
Why It Matters
git add controls what enters the next commit. Granting Bash(git add:*) in shared Claude settings makes repository staging authority part of the default team policy, which is harder to audit than narrower reviewed workflows.
Trigger Shape
The rule triggers only when all of these are true:
- the file is a detected Claude settings surface
- the path is not fixture-like
permissions.allowcontains the exact tokenBash(git add:*)
Clean Cases
These stay clean:
- more specific commands such as
Bash(git add src/lib.rs) - settings files that do not grant blanket
git add - fixture-like examples under test or fixture paths
Example Trigger
json
{
"permissions": {
"allow": ["Bash(git add:*)", "Read(*)"]
}
}Safer Example
json
{
"permissions": {
"allow": ["Bash(git add src/lib.rs)", "Read(*)"]
}
}How To Fix
Remove shared git add permissions or replace them with a narrower reviewed workflow that keeps staging under explicit user control.