Skip to content

Rule Reference

SEC404lintai-ai-securitygovernancehardeningpreviewmarkdownwarn

AI markdown: bare WebFetch tool grant

AI-native markdown frontmatter grants bare `WebFetch` 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 frontmatter for exact bare `WebFetch` grants that expose unconstrained remote fetch authority as shared default policy.

Deterministic signal basis

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

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

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

Nearby Signals

Related Rules

SEC404 / MD-WEBFETCH-UNSCOPED

SEC404 flags AI-native markdown frontmatter when allowed-tools or allowed_tools grants bare WebFetch.

Why It Matters

Bare WebFetch is a broad remote-content capability grant. In shared skills or instruction files it is easy to ship repo-wide fetch authority by default instead of constraining access to reviewed domains or patterns.

Trigger Shape

The rule triggers only when all of these are true:

  • the file is a detected AI-native markdown instruction surface
  • the path is not fixture-like
  • allowed-tools or allowed_tools contains the exact token WebFetch

Clean Cases

These stay clean:

  • scoped patterns such as WebFetch(domain:docs.example.com)
  • wildcard fetch grants, which should be handled separately if promoted later
  • fixture-like examples under test or fixture paths

Example Trigger

yaml
---
allowed-tools: WebFetch, Read
---

Safer Example

yaml
---
allowed-tools: WebFetch(domain:docs.example.com), Read
---

How To Fix

Replace bare WebFetch with a narrower reviewed fetch pattern, or remove broad fetch access from the shared frontmatter grant.