Appearance
SEC389 / MD-WEBSEARCH-UNSCOPED
SEC389 flags AI-native markdown frontmatter when allowed-tools or allowed_tools grants bare WebSearch.
Why It Matters
Bare WebSearch is a broad capability grant. In shared skills or instruction files it is easy to cargo-cult into repositories without review, which makes network-search scope harder to reason about than an explicit constrained pattern.
Trigger Shape
The rule triggers only when all of these are true:
- the file is a detected AI-native markdown instruction surface
- the path is not fixture-like
allowed-toolsorallowed_toolscontains the exact tokenWebSearch
Clean Cases
These stay clean:
- scoped patterns such as
WebSearch(site:docs.example.com) - wildcard search grants, which should be handled separately if promoted later
- fixture-like examples under test or fixture paths
Example Trigger
yaml
---
allowed-tools: WebSearch, Read
---Safer Example
yaml
---
allowed-tools: WebSearch(site:docs.example.com), Read
---How To Fix
Replace bare WebSearch with a narrower reviewed search pattern, or remove broad search access from the shared frontmatter grant.