T08 · Insecure Dependencies
Warning
- Location
- references/setup.md:39
- Finding
- Unpinned and Unverified Third-Party CLI Installation## Vulnerability Details **File Locations**: - `SKILL.md:18-20` - `references/setup.md:39-50` **Vulnerability Type**: Supply-chain exposure through mutable and unverified third-party dependencies **Risk Level**: Medium **Affected Code in `SKILL.md`:** ```yaml install: - kind: node package: "@eat-pray-ai/yutu" bins: [yutu] ``` **Affected Code in `references/setup.md`:** ```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@latest ``` The same setup guide also instructs users to download a prebuilt binary from the latest release page and place it in `PATH`, without documenting checksum or signature verification. ### Technical Analysis All documented installation methods resolve a mutable package or executable without pinning an audited version or verifying artifact integrity. The Go command explicitly uses the mutable `@latest` selector. The npm declaration and installation command omit a version, while the Homebrew and Winget instructions do not identify an exact repository, manifest, or immutable package revision. The downloaded release binary is likewise intended to be placed directly in `PATH` without a documented cryptographic checksum or signature-verification procedure. Consequently, the code executed by users can differ from the dependency that was reviewed during this audit. This risk is especially significant because the installed `yutu` process is expected to handle Google OAuth client credentials and cached YouTube access tokens through `client_secret.json`, `youtube.token.json`, `YUTU_CREDENTIAL`, and `YUTU_CACHE_TOKEN`. A compromised package registry, release account, package manifest, repository, or distribution channel could therefore deliver attacker-controlled code with access to this sensitive material. ### Attack Path 1. A ...[truncated 1699 chars]
- Remediation
- ## Remediation Suggestions 1. Pin a specific, reviewed release version for every installation method rather than using implicit latest versions or `@latest`. 2. Pin Go installations to an immutable reviewed tag or commit. 3. Provide SHA-256 checksums for every prebuilt binary and document the exact verification commands users must run before execution. 4. Publish signed release artifacts and require signature verification using a documented trusted public key or a suitable provenance system such as Sigstore. 5. Identify the exact trusted Homebrew tap and Winget manifest or source instead of relying only on a generic package name. 6. Use package-manager lockfiles or integrity metadata wherever the Skill platform supports them. 7. Document the minimum OAuth scopes needed for the listing operation and avoid requesting unrelated YouTube permissions. 8. Recommend restrictive filesystem permissions for `client_secret.json` and `youtube.token.json`. 9. Advise users not to install or execute the CLI with administrative privileges unless strictly required. 10. Establish a release-review process that verifies source provenance, dependency changes, build reproducibility, and published artifact hashes before updating the pinned version.
