Skip to content

Rule Reference

SEC438lintai-ai-securitystablemarkdownwarn

AI markdown: `Bash(git reset:*)` tool grant

AI-native markdown frontmatter grants `Bash(git reset:*)` authority

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 wildcard git reset grants in shared allowed-tools policy.

Deterministic signal basis

MarkdownSignals exact frontmatter token detection for `Bash(git reset:*)` inside allowed-tools or allowed_tools.

Malicious corpus
skill-git-reset-allowed-tools
Benign corpus
skill-git-reset-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

SEC438 / MD-GIT-RESET-ALLOWED-TOOLS

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

Why It Matters

Blanket git reset authority lets an agent rewrite staged or working-tree state as part of a default shared policy. In AI-native instruction frontmatter, that is much harder to review than a narrow workflow-specific command.

Trigger Shape

The rule triggers only when all of these are true:

  • the file is an AI-native markdown instruction surface with parsed frontmatter
  • the path is not fixture-like
  • allowed-tools or allowed_tools contains the exact token Bash(git reset:*)

Clean Cases

These stay clean:

  • more specific reviewed commands such as Bash(git reset --hard HEAD~1)
  • frontmatter that does not grant git reset
  • fixture-like examples under test or fixture paths

Example Trigger

md
---
allowed-tools:
  - Bash(git reset:*)
  - Read
---

Safer Example

md
---
allowed-tools:
  - Bash(git reset --hard HEAD~1)
  - Read
---

How To Fix

Replace Bash(git reset:*) with a narrower reviewed command pattern, or remove broad git reset authority from shared frontmatter entirely.