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
Remote content piped straight into a shell: curl or wget piped into sh, bash or zsh, including through sudo.
Why it matters
Whatever the server returns at that moment executes, with the installing user's privileges, with no version, no checksum, and no copy left behind to inspect afterwards. The response can differ per request, so the script a maintainer tested and the script a user receives need not be the same bytes, and a host compromised later silently changes what every subsequent install runs. Nothing in the skill records what was executed.
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 206 of 16475 public skills scanned as of 11 September 2026.
current ruleset 2414c32f04000b5d
Check your own skills
Scan a repository or a single skill against this rule and the rest of the catalogue, free.