Appearance
SEC428 / MD-READ-UNSAFE-PATH
SEC428 flags AI-native markdown frontmatter when allowed-tools or allowed_tools grants Read(...) over an absolute path, home-relative path, Windows drive path, or parent-traversing path.
Why It Matters
Shared instruction frontmatter should keep file-read authority scoped to reviewed repo-local paths. Repo-external or parent-traversing Read(...) grants quietly expand access beyond the project boundary.
Trigger Shape
- AI-native markdown surface with parsed frontmatter
- path is not fixture-like
allowed-toolsorallowed_toolscontainsRead(...)- the inner path starts with
/,~/,~\\, a Windows drive prefix, or contains../or..\\
Clean Cases
- repo-local scopes such as
Read(./docs/**) - frontmatter without
Read(...) - fixture-like examples under test or fixture paths
Example Trigger
md
---
allowed-tools: Read(/etc/**), Write(./artifacts/**)
---Safer Example
md
---
allowed-tools: Read(./docs/**), Write(./artifacts/**)
---How To Fix
Replace repo-external Read(...) grants with narrower repo-local scopes, or remove shared read authority outside the project boundary.