Skip to content

Rule Reference

SEC427lintai-ai-securitystablemarkdownwarn

AI markdown: bare Grep tool grant

AI-native markdown frontmatter grants bare `Grep` tool access

Provider
lintai-ai-security
Surface
markdown
Scope
per_file
Tier
stable
Severity
warn
Confidence
high
Detection
structural
Remediation
message_only

Activation Model

Preset Membership

This rule is part of the builtin activation graph through these preset memberships.

Lifecycle

Stable Lifecycle Contract

State

stable_gated

Graduation rationale

Checks AI-native frontmatter for bare Grep grants that omit a reviewed search scope.

Deterministic signal basis

MarkdownSignals exact frontmatter token detection for bare `Grep` inside allowed-tools or allowed_tools.

Malicious corpus
skill-unscoped-grep-allowed-tools
Benign corpus
skill-unscoped-grep-allowed-tools-specific-safe
structured evidence required remediation reviewed
Canonical note

Structural stable rule intended as a high-precision check with deterministic evidence.

Nearby Signals

Related Rules

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-tools or allowed_tools contains the exact token Grep

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.