Appearance
SEC409 / CLAUDE-GIT-FETCH-PERMISSION
SEC409 flags shared Claude settings when permissions.allow grants blanket git fetch authority.
Why It Matters
git fetch:* gives shared AI settings a generic remote repository synchronization capability. In committed team config that can normalize unreviewed remote state updates instead of keeping repository sync under explicit operator control.
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 fetch:*)
Clean Cases
These stay clean:
- more specific commands such as
Bash(git fetch origin main) - settings files that do not grant blanket
git fetch - fixture-like examples under test or fixture paths
Example Trigger
json
{
"permissions": {
"allow": ["Bash(git fetch:*)", "Read(*)"]
}
}Safer Example
json
{
"permissions": {
"allow": ["Bash(git fetch origin main)", "Read(*)"]
}
}How To Fix
Remove shared git fetch permissions or replace them with a narrower reviewed workflow that keeps repository synchronization under explicit user control.