Appearance
SEC500 / MD-NPX-ALLOWED-TOOLS
SEC500 flags AI-native markdown frontmatter when allowed-tools grants the exact token Bash(npx:*).
Why It Matters
npx resolves and executes packages through a mutable runner path. Shared frontmatter should not quietly make that a default capability for every agent that loads the file.
Trigger Shape
The rule triggers only when all of these are true:
- the file is an AI-native markdown instruction surface
- the path is not fixture-like
allowed-toolsorallowed_toolscontains the exact tokenBash(npx:*)
Clean Cases
These stay clean:
- more specific project commands such as
Bash(npm run lint) - frontmatter without
Bash(npx:*) - fixture-like examples under test or fixture paths
Example Trigger
yaml
allowed-tools:
- Bash(npx:*)
- ReadSafer Example
yaml
allowed-tools:
- Bash(npm run lint)
- ReadHow To Fix
Replace Bash(npx:*) with a narrower reviewed command, or remove shared mutable package-execution authority from the frontmatter entirely.