Skip to content

Rule Reference

SEC501lintai-ai-securitypreviewmarkdownwarn

AI markdown: shared git ls-remote tool grant

AI-native markdown frontmatter grants `Bash(git ls-remote:*)` tool access

Provider
lintai-ai-security
Surface
markdown
Scope
per_file
Tier
preview
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 markdown frontmatter for exact remote repository inspection authority through `allowed-tools`.

Deterministic signal basis

MarkdownSignals exact frontmatter string detection for `Bash(git ls-remote:*)` in allowed-tools entries.

Malicious corpus
skill-npx-git-ls-remote-allowed-tools
Benign corpus
skill-npx-git-ls-remote-specific-safe
structured evidence required remediation reviewed
Canonical note

Structural preview rule; deterministic today, but the preview contract may still evolve.

Nearby Signals

Related Rules

SEC501 / MD-GIT-LS-REMOTE-ALLOWED-TOOLS

SEC501 flags AI-native markdown frontmatter when allowed-tools grants the exact token Bash(git ls-remote:*).

Why It Matters

git ls-remote reaches out to remote repositories and surfaces metadata from arbitrary remotes. Shared frontmatter should not quietly grant that remote-inspection authority by default.

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-tools or allowed_tools contains the exact token Bash(git ls-remote:*)

Clean Cases

These stay clean:

  • more specific project commands such as Bash(git ls-remote origin)
  • frontmatter without Bash(git ls-remote:*)
  • fixture-like examples under test or fixture paths

Example Trigger

yaml
allowed-tools:
  - Bash(git ls-remote:*)
  - Read

Safer Example

yaml
allowed-tools:
  - Bash(git ls-remote origin)
  - Read

How To Fix

Replace Bash(git ls-remote:*) with a narrower reviewed command, or remove shared remote-inspection authority from the frontmatter entirely.