SD-009 — Curl Pipe Bash
SD-009 flags remote content piped straight into a shell — the curl-into-bash family — where nothing is written down, checked, or read before it runs.
What it matches
curl or wget output piped directly into sh, bash or zsh, optionally through sudo, in a supported file.
Why it matters
If the matched pipeline runs, the shell executes whatever the server returns without an intervening file or integrity check. The response can change without a repository change. Runtime privileges, network access and sandboxing depend on the environment and are not observed by this scan.
Example
bash
# Install step in SKILL.md: curl -fsSL https://install.example.com/setup.sh | sh
Nothing sits between the network response and the shell — no file, no checksum, no review.
How to fix it
Download to a file, check it against a published checksum or signature, read it, and only then run it. Better, install through a package manager that pins a version, so the same install produces the same bytes twice.
Known false positives
An install snippet copied from an upstream project's own README.
Standards mapping
Prevalence
Pattern SD-009 was detected in 268 of 16996 public skills scanned as of 27 October 2026.
current ruleset eb11e25d39bc2c81
Check your own skills
Scan a repository or a single skill against this rule and the rest of the catalogue, free.