T03 · Remote Payload Retrieval and Execution
- Location
scripts/bootstrap.sh:4- Finding
Unpinned Remote Repository Is Downloaded and Executed
- Content
View full analysis
Vulnerability Details
File Location:
scripts/bootstrap.sh, lines 4-16
Vulnerability Type: Mutable remote payload retrieval and execution
Risk Level: HighVulnerable Code
bash PARAKEET_DIR="${PARAKEET_DIR:-$HOME/parakeet-asr}" REPO_URL="${PARAKEET_REPO_URL:-https://github.com/rundax/parakeet-asr.git}" if [ -d "$PARAKEET_DIR/.git" ]; then echo "Updating existing repo at $PARAKEET_DIR" git -C "$PARAKEET_DIR" pull --ff-only else echo "Cloning repo to $PARAKEET_DIR" git clone "$REPO_URL" "$PARAKEET_DIR" fi cd "$PARAKEET_DIR" ./setup.shTechnical Analysis
The bootstrap script clones or updates a third-party Git repository and immediately executes its
setup.shfile. The retrieved revision is not pinned to an audited commit, and the script does not verify a cryptographic checksum, commit signature, or signed release.Although
git pull --ff-onlyprevents a non-fast-forward merge, it does not establish trust in newly retrieved commits. The effective installation payload can therefore change after this Skill has been reviewed. In addition, thePARAKEET_REPO_URLenvironment variable permits the repository source to be replaced with another Git repository.This is a supply-chain execution boundary: the audited local script delegates code execution to mutable content that is not included in the audited project.
Attack Path
- An attacker compromises or maliciously modifies the upstream repository, its active branch, or a repository selected through
PARAKEET_REPO_URL. - A user or agent follows the documented workflow and runs:
bash bash scripts/bootstrap.sh - The script clones the attacker-controlled repository or pulls its latest commits.
- No expected commit ID, signature, or checksum is validated.
- The downloaded
setup.shexecutes with the permissions of the user running the bootstrap script. - The remote setup code can perform any operation available to that user and may request or invok ...[truncated 651 chars]
- An attacker compromises or maliciously modifies the upstream repository, its active branch, or a repository selected through
- Remediation
View remediation
Remediation Suggestions
- Pin the upstream source to a specific, previously audited commit hash rather than pulling the current branch tip.
- Verify that the checked-out
HEADexactly matches the expected commit before executing any file:bash EXPECTED_COMMIT="approved-full-commit-hash" git clone --no-checkout "$REPO_URL" "$PARAKEET_DIR" git -C "$PARAKEET_DIR" checkout --detach "$EXPECTED_COMMIT" test "$(git -C "$PARAKEET_DIR" rev-parse HEAD)" = "$EXPECTED_COMMIT" - Prefer a signed release artifact and validate its cryptographic signature and SHA-256 checksum against values stored in the reviewed Skill.
- Do not run
git pullfollowed by automatic execution. Updates should require explicit review and an intentional revision change. - Reject
PARAKEET_REPO_URLoverrides by default, or require explicit user confirmation while displaying the resolved source and revision. - Inspect and present the downloaded setup actions before execution, especially package-manager commands, privilege requests, service installation, and network listeners.
- Execute installation with the least-privileged account possible and avoid granting elevated privileges to unverified remote code.
