T08 · Insecure Dependencies
- Location
references/setup.md:36- Finding
Unpinned Third-Party CLI Installation Creates Supply-Chain Risk
- Content
View full analysis
Vulnerability Details
File Location:
references/setup.md:36-51; related dependency declaration atSKILL.md:18-21
Vulnerability Type: Unpinned and mutable third-party dependencies
Risk Level: MediumVulnerable Code
SKILL.md:18-21:yaml install: - kind: node package: "@eat-pray-ai/yutu" bins: [yutu]references/setup.md:36-51:bash # Node.js (all platforms) npm i -g @eat-pray-ai/yutu # macOS brew install yutu # Linux brew install yutu # Windows winget install yutu # Gopher go install github.com/eat-pray-ai/yutu@latestmarkdown ### Other platforms Download a prebuilt binary from the [releases page](https://github.com/eat-pray-ai/yutu/releases/latest) and place it in your PATH.Technical Analysis
The Skill instructs users to install and execute the
yutuCLI without pinning a reviewed version or verifying an artifact checksum or signature. The Go command explicitly uses the mutable@latestselector, while the npm, Homebrew, Winget, and GitHub release instructions similarly resolve packages or binaries that may change after this Skill has been audited.The external CLI is security-sensitive because the documented workflow gives it access to:
- The OAuth client credential stored in
client_secret.jsonor supplied throughYUTU_CREDENTIAL. - The cached OAuth token stored in
youtube.token.jsonor supplied throughYUTU_CACHE_TOKEN. - Local banner image files.
- YouTube operations authorized by the OAuth scopes granted by the user.
Consequently, the behavior actually executed by users is not fully represented by the reviewed project. A compromised package publisher, package registry entry, distribution repository, or release artifact could substitute malicious CLI code.
Attack Path
- An attacker compromises a supported distribution channel, publisher account, upstream repository, package release, or mutab ...[truncated 1343 chars]
- The OAuth client credential stored in
- Remediation
View remediation
Remediation Suggestions
- Pin a specific reviewed
yutuversion in every installation method instead of using unversioned packages or@latest. - For Go installations, replace
@latestwith an immutable, reviewed release tag. - Publish SHA-256 checksums and, preferably, cryptographic signatures for downloadable binaries. Require users to verify them before execution.
- Document the authoritative npm publisher, Homebrew tap, Winget source, Go module, and GitHub repository to reduce package substitution and namespace ambiguity.
- Prefer project-local or isolated installation over global installation where supported.
- Use lockfiles or integrity metadata where the package manager supports them.
- Document the minimum OAuth scopes required for banner uploads and advise users to reject broader permissions.
- Require restrictive filesystem permissions for
client_secret.jsonandyoutube.token.json, and advise users not to place these files in source control. - Establish a release-review process that verifies source provenance, build reproducibility, package signatures, and checksums before updating the pinned version.
- Pin a specific reviewed
