Appearance
SEC408 / CLAUDE-GH-PR-PERMISSION
SEC408 flags shared Claude settings when permissions.allow grants blanket gh pr authority.
Why It Matters
gh pr:* bundles broad pull-request operations behind one shared permission token. In committed team settings that can normalize remote PR actions without forcing a narrower reviewed subcommand set.
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 pr:*)
Clean Cases
These stay clean:
- more specific commands such as
Bash(gh pr diff:*) - settings files that do not grant blanket
gh pr - fixture-like examples under test or fixture paths
Example Trigger
json
{
"permissions": {
"allow": ["Bash(gh pr:*)", "Read(*)"]
}
}Safer Example
json
{
"permissions": {
"allow": ["Bash(gh pr diff:*)", "Read(*)"]
}
}How To Fix
Remove shared gh pr permissions or replace them with narrower reviewed subcommands that keep pull-request operations under explicit user control.