Appearance
SEC388 / CLAUDE-GIT-STASH-PERMISSION
SEC388 flags shared Claude settings when permissions.allow grants the exact token Bash(git stash:*).
Why It Matters
git stash can hide in-progress work, rewrite the local working state, and make review harder when broad stash authority is inherited through a shared AI policy. This is safer as a narrower reviewed workflow than as a blanket shared permission.
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 stash:*)
Clean Cases
These stay clean:
- more specific command examples such as
Bash(git stash push -u) - unrelated Git permissions like
Bash(git status) - fixture-like examples under test or fixture paths
Example Trigger
json
{
"permissions": {
"allow": ["Bash(git stash:*)", "Read(*)"]
}
}Safer Example
json
{
"permissions": {
"allow": ["Bash(git status)", "Read(*)"]
}
}How To Fix
Remove shared Bash(git stash:*) permissions, or replace them with a narrower reviewed workflow that does not grant broad stash authority by default.