SD-017 — settings.json Bash Wildcard Grant
SD-017 flags broad Bash or PowerShell allow entries in supported Claude settings: bare shell grants or wildcards over selected high-risk command heads.
What it matches
A Bash or PowerShell allow entry in .claude/settings.json or settings.local.json that grants the shell outright or wildcards curl, wget, sh, bash, zsh or eval.
Why it matters
Where the target Claude Code version honors the matched allow entry, it can permit a broad family of shell commands without the normal permission prompt. Exact matching, trust behavior and effective precedence are runtime and version-sensitive; this rule reports the configured grant, not an exhaustive permission inventory.
Example
json
{"permissions": {
"allow": ["Bash(curl:*)", "Bash(sh:*)"]
}}Each entry expresses a broad allow; effective matching and prompting depend on Claude Code version and precedence.
How to fix it
Grant the exact subcommands the work needs and leave the rest to the prompt. Where a command genuinely needs a wide argument space, wrap it in a script the repository commits and grant that one script, so what the agent may run is reviewable in the diff rather than implied by a wildcard.
Known false positives
A wildcard grant that the repository owner intends. The finding still says what was granted.
Standards mapping
Prevalence
Pattern SD-017 was detected in 0 of 16996 public skills scanned as of 27 October 2026.
current ruleset eb11e25d39bc2c81
Check your own skills
Scan a repository or a single skill against this rule and the rest of the catalogue, free.