Appearance
SEC412 / CLAUDE-WGET-PERMISSION
SEC412 flags shared Claude settings when permissions.allow grants the exact wildcard permission Bash(wget:*).
Why It Matters
Granting blanket wget execution in a shared AI policy makes arbitrary network fetches part of the default team execution surface. That is a broad and easily copied permission shape for remote download workflows, even when the project does not need direct unrestricted wget access 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 stringBash(wget:*)
Clean Cases
These stay clean:
- more specific permissions such as
Bash(wget https://example.com/archive.tgz) - settings files that do not grant
wgetat all - fixture-like examples under test or fixture paths
Example Trigger
json
{
"permissions": {
"allow": ["Bash(wget:*)", "Read(*)"]
}
}Safer Example
json
{
"permissions": {
"allow": ["Bash(wget https://example.com/archive.tgz)", "Read(*)"]
}
}How To Fix
Remove shared Bash(wget:*) permissions or replace them with a narrower reviewed command pattern that keeps direct network downloads under explicit user control.