AntFleet

Disagreement · 219fd253-anthropic-0

setup.sh pipes remote install script to shell without verification

mismatch
repo a16d2030·PR #3·reviewed 1 week ago

Primary finding

setup.sh pipes remote install script to shell without verification

highsecurityhigh
  • gitlawb/scripts/setup.sh:11-13
The setup script downloads and executes an arbitrary remote shell script with no checksum, signature, or pinned-version verification. Anyone able to MITM or compromise gitlawb.com (or its TLS chain) can achieve arbitrary code execution on every user running setup.sh. Because setup.sh is in `scripts/` and intended to be run by users/agents onboarding to the skill, this propagates the risk to every consumer of the skill. The README documents the same pattern, but inside an automated helper script the risk is materially worse: agents may run setup.sh without the user reading it. At minimum a checksum verification step (download to tempfile, verify sha256, then execute) should be used; ideally prefer the npm or Homebrew install paths which are already documented as alternatives in SKILL.md.

Recommendation

Either (a) replace the curl|sh with `npm install -g @gitlawb/gl` (already listed as the recommended install method in SKILL.md), or (b) download install.sh to a temp file, verify a pinned SHA-256 published out-of-band, and only then execute. Also fail closed if the download fails (currently `set -euo pipefail` will catch curl failures, but the piped `sh` masks the exit code on some shells — use `set -o pipefail` explicitly and check `${PIPESTATUS[@]}`).

Counterpart finding

Quick setup script does not verify presence of git dependency

lowmaintainabilityhigh
  • gitlawb/scripts/setup.sh:9-15
The skill metadata requires bins ["gl","git"], and many workflows depend on git being present. The setup script ensures gl is installed but never checks for git, which can lead to later failures during clone/push steps or when running git-remote-gitlawb.

Recommendation

Add a preflight check for git (command -v git). If missing, print a clear instruction to install git (or install via package manager where feasible) before proceeding. Optionally run gl doctor only after both dependencies are confirmed.

Why this didn't post

This finding didn't meet AntFleet's unanimous agreement threshold. Both frontier models review every PR independently; only findings they both flag with the same severity and category are posted to the PR. This one fell through.

read the methodology →

From the same review

These findings passed the unanimous gate on the same PR review. The disagreement above was filtered out; the findings below were posted.