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