T08 · Insecure Dependencies
- Location
SKILL.md:14- Finding
Installation of Unpinned and Unverified External Executables
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 14–20
Vulnerability Type: Mutable and unverified third-party dependency installation
Risk Level: Highbash # Using go install go install github.com/nerveband/youtube-api-cli/cmd/yt-api@latest # Or download from releases curl -L -o yt-api https://github.com/nerveband/youtube-api-cli/releases/latest/download/yt-api-darwin-arm64 chmod +x yt-api sudo mv yt-api /usr/local/bin/Technical Analysis
Both documented installation methods retrieve mutable
latestartifacts from an external repository. Neither method pins an immutable release version or commit, and the downloaded executable is not validated using a cryptographic checksum or signature before being made executable.The direct-download method uses
curl -L, which follows redirects, and then installs the resulting file into/usr/local/bin/with elevated privileges. Consequently, the code ultimately executed by users can change after the Skill has been reviewed without any corresponding modification toSKILL.md.The Go installation method has a similar supply-chain weakness because
@latestresolves dynamically. A compromise of the upstream repository, maintainer account, module release process, or build pipeline could cause users to install attacker-controlled code.Attack Path
- An attacker compromises the upstream repository, maintainer account, release workflow, module publication process, or downloadable release artifact.
- The attacker publishes a malicious version that becomes the target of
@latestor replaces the asset referenced through/releases/latest/. - A user follows the documented installation instructions.
- The malicious artifact is downloaded without integrity or authenticity verification.
- The artifact is made executable and, in the binary-download workflow, placed in
/usr/local/bin/usingsudo. - The user runs
yt-apito authenticate or ...[truncated 1105 chars]
- Remediation
View remediation
Remediation Suggestions
- Replace
@latestand/releases/latest/with a reviewed, explicitly pinned release version or immutable commit. - Publish SHA-256 checksums through a separately protected release process and verify the downloaded artifact before granting execute permissions.
- Prefer cryptographic release signatures or provenance attestations, and document signature verification using a pinned maintainer identity.
- Use
curl --fail --show-error --locationand validate the final artifact, but do not treat HTTPS or successful download status as a substitute for integrity verification. - Avoid installing with
sudowhere possible. Install into a user-controlled directory such as~/.local/binand apply least privilege. - Consider building the pinned release from reviewed source in a controlled environment.
- Document expected release hashes and supported architectures directly in versioned installation instructions.
- Protect OAuth tokens and service-account credentials from the installed process where possible, grant only necessary API scopes, and rotate credentials immediately if an installed artifact fails verification.
- Replace
