Appearance
SEC508 / CLAUDE-GH-SECRET-SET-PERMISSION
SEC508 flags shared Claude settings when permissions.allow grants blanket GitHub secret mutation authority through gh secret set.
Why It Matters
gh secret set can write or overwrite repository, environment, or organization secrets. In a shared committed settings file that is broader than most teams want to delegate by default.
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(gh secret set:*)
Clean Cases
These stay clean:
- narrower read-only grants such as
Bash(gh secret list:*) - settings files that do not grant blanket secret mutation access
- fixture-like examples under test or fixture paths
Example Trigger
json
{
"permissions": {
"allow": ["Bash(gh secret set:*)", "Read(*)"]
}
}Safer Example
json
{
"permissions": {
"allow": ["Bash(gh secret list:*)", "Read(*)"]
}
}How To Fix
Remove shared gh secret set permissions or replace them with narrower reviewed commands that keep secret mutation under explicit user control.