Appearance
SEC427 / MD-GREP-UNSCOPED
SEC427 flags AI-native markdown frontmatter when allowed-tools or allowed_tools grants bare Grep.
This rule intentionally lives in the opt-in governance preset. Shared skills often need search capabilities, but repo-wide default grep authority is a policy choice that deserves explicit review rather than headline security treatment.
Why It Matters
Bare Grep is a broad content-search grant. In shared skills and instruction files, it turns open-ended repository search into default policy instead of a narrower reviewed grep scope.
Trigger Shape
- AI-native markdown surface with parsed frontmatter
- path is not fixture-like
allowed-toolsorallowed_toolscontains the exact tokenGrep
Clean Cases
- scoped patterns such as
Grep(todo:) - frontmatter that does not grant bare
Grep - fixture-like examples under test or fixture paths
Example Trigger
md
---
allowed-tools: Grep, Read(./docs/**)
---Safer Example
md
---
allowed-tools: Grep(todo:), Read(./docs/**)
---How To Fix
Review whether shared bare Grep authority is really needed, or replace it with narrower workflow-specific search patterns instead of a default repo-wide grant.