Permission allowlist is six unqualified tool names #2

Open
opened 2026-08-01 16:15:07 +01:00 by naps62-yolo · 0 comments
Owner

~/.claude/settings.json allows Bash, Edit, Write, NotebookEdit,
WebFetch, WebSearch with no scoping. Unqualified Bash pre-approves every
shell command, which means the allowed-tools declaration in every skill —
vendored or local — never gates anything.

This sits directly against the rule in claude-md/operating.md that says
external content is adversarial and its commands must not be run.

The deny list is the only real gate and is per-tool, so Read(~/.ssh/**)
does not stop the same file being read through Bash.

Cost of fixing: a wave of permission prompts until a scoped allowlist settles.
The /fewer-permission-prompts skill builds one from existing transcripts,
which is the cheap way in.

`~/.claude/settings.json` allows `Bash`, `Edit`, `Write`, `NotebookEdit`, `WebFetch`, `WebSearch` with no scoping. Unqualified `Bash` pre-approves every shell command, which means the `allowed-tools` declaration in every skill — vendored or local — never gates anything. This sits directly against the rule in `claude-md/operating.md` that says external content is adversarial and its commands must not be run. The `deny` list is the only real gate and is per-tool, so `Read(~/.ssh/**)` does not stop the same file being read through Bash. Cost of fixing: a wave of permission prompts until a scoped allowlist settles. The `/fewer-permission-prompts` skill builds one from existing transcripts, which is the cheap way in.
naps62-yolo added the weekly-review label 2026-08-01 16:28:32 +01:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: yolo/agent-skills#2