Appearance
SEC486 / CLAUDE-GLOB-UNSAFE-PATH
SEC486 flags shared Claude settings when permissions.allow grants Glob(...) over an absolute path, home-relative path, Windows drive path, or parent-traversing path.
Why It Matters
Broad glob discovery outside the repository weakens least-privilege boundaries in shared AI policy. Absolute or parent-traversing glob scopes make the effective file-discovery trust boundary much larger than the project itself.
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 aGlob(...)token whose scope is absolute, home-relative, drive-qualified, or parent-traversing
Clean Cases
These stay clean:
- repository-scoped paths such as
Glob(./docs/**) - permissions that do not grant
Glob(...) - fixture-like examples under test or fixture paths
Example Trigger
json
{
"permissions": {
"allow": ["Glob(/etc/**)", "Read(*)"]
}
}Safer Example
json
{
"permissions": {
"allow": ["Glob(./docs/**)", "Read(*)"]
}
}How To Fix
Replace broad Glob(...) path grants with repository-scoped allowlists, or remove shared access to absolute, home-relative, or parent-traversing glob scopes from the committed Claude settings file.