Appearance
Why It Matters
Broad Bash grants in AI-native frontmatter widen agent execution authority far beyond the task the document is trying to teach. For shared skills and instruction files, this makes the documented setup less defensible and harder to review than scoped forms such as Bash(git:*).
Current Priority
SEC352 is currently the strongest skills-markdown rule in the external validation set:
- latest field pass:
20findings - manual review:
20 TP,0 expected-but-benign,0 FP - practical takeaway: if you want one preview-era skills markdown rule to read first, start here
See also: SEC352 Stable-Candidate Track.
What Triggers
SEC352 applies to AI-native markdown surfaces with parsed frontmatter and triggers when allowed-tools or allowed_tools grants bare Bash instead of a scoped Bash(...) form.
Examples that trigger:
allowed-tools: Bash, Read, Writeallowed-tools: [Bash, Read]- YAML list form with
- Bash
Examples that stay clean:
allowed-tools: Bash(git:*), Read- files under fixture-like paths such as
tests/fixtures/
False Positives
This rule stays Preview because some ecosystems still document broad Bash grants as a convenience default. The intent is least-privilege guidance, not a claim that every such skill is immediately exploitable. The current field data is still unusually strong for a preview markdown rule: no false positives were observed in the latest stratified wave.
The remaining blocker is now promotion discipline, not a lack of field signal. The checked-in promotion packet lives in SEC352 Stable-Candidate Track.
Remediation
Prefer scoped command grants such as Bash(git:*), Bash(npm:*), or another narrower tool set that matches the documented workflow. If broad shell access is truly required, document that exception explicitly and keep the rule suppressed only after review.