Skip to content

Rule Reference

SEC496lintai-ai-securitygovernancehardeningpreviewmarkdownwarn

AI markdown: shared uvx tool grant

AI-native markdown frontmatter grants `Bash(uvx:*)` tool access

Public lane
governance
Category
hardening
Provider
lintai-ai-security
Scope
per-file
Surface
markdown
Tier
preview
Severity
warn
Confidence
high
Detection
structural
Remediation
message only
How to read this lane

Shared authority and workflow policy review.

How to read this category

Least-privilege, provenance, or operational hygiene signal.

Activation Model

Preset Activation

These presets explain where this rule appears in the product experience.

Lifecycle

Stable Lifecycle Contract

State

stable

Graduation rationale

Checks AI-native markdown frontmatter for exact mutable `uvx` authority through `allowed-tools`.

Deterministic signal basis

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

Malicious corpus
skill-uvx-dlx-pipx-allowed-tools
Benign corpus
skill-uvx-dlx-pipx-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

SEC496 / MD-UVX-ALLOWED-TOOLS

SEC496 flags AI-native markdown frontmatter when allowed-tools grants the exact token Bash(uvx:*).

Why It Matters

uvx resolves and executes packages through a mutable runner path. In shared frontmatter, that quietly makes on-demand package execution a default capability for everyone who 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-tools or allowed_tools contains the exact token Bash(uvx:*)

Clean Cases

These stay clean:

  • more specific project commands such as Bash(uv run black)
  • frontmatter without Bash(uvx:*)
  • fixture-like examples under test or fixture paths

Example Trigger

yaml
allowed-tools:
  - Bash(uvx:*)
  - Read

Safer Example

yaml
allowed-tools:
  - Bash(uv run black)
  - Read

How To Fix

Replace Bash(uvx:*) with a narrower reviewed command, or remove shared mutable package-execution authority from the frontmatter entirely.