T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:18
- Finding
- Unpinned Third-Party CLI Installation Creates Supply-Chain Risk## Vulnerability Details **File Locations**: `SKILL.md:18-21` and `references/setup.md:32-54` **Vulnerability Type**: Unpinned and unverifiable third-party executable dependencies **Risk Level**: Medium ### Vulnerable Code `SKILL.md:18-21` ```yaml install: - kind: node package: "@eat-pray-ai/yutu" bins: [yutu] ``` `references/setup.md:32-54` ```markdown Install `yutu` using one of these methods: ```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 ``` ### 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 installs and executes the third-party `yutu` CLI without pinning a reviewed version. The npm, Homebrew, Winget, and release-page instructions implicitly resolve a mutable current release, while the Go command explicitly requests `@latest`. No checksum, signature, lockfile, commit identifier, or package-provenance verification is supplied. This CLI is security-sensitive because it is configured to access Google OAuth client credentials and a cached YouTube authorization token. A compromised publisher account, package registry entry, package-manager manifest, source repository, or binary release could therefore distribute an altered executable under the expected package name. There is no evidence that the currently named package or repository is malicious; the risk arises from installing future mutable artifacts without integrity controls. ### Attack Path 1. An attacker compromises a supported distribution channel, publisher account, repository, or release artifact. 2. The attacker publishes a malicious version under the legitimate `yutu` package or release identity. 3. A user follows the doc ...[truncated 1120 chars]
- Remediation
- ## Remediation Suggestions 1. Pin the npm dependency to a specific reviewed version rather than resolving the current release implicitly. 2. Replace `github.com/eat-pray-ai/yutu@latest` with a fixed semantic version or reviewed commit hash. 3. Link to a specific release instead of the mutable `/releases/latest` endpoint. 4. Publish SHA-256 checksums for prebuilt binaries and document an explicit verification command before installation. 5. Prefer signed release artifacts and verify signatures against a documented maintainer key. 6. Pin package-manager manifests where supported and document the exact expected package publisher and repository. 7. Use automated dependency monitoring to review security advisories before updating the pinned version. 8. Recommend least-privilege Google OAuth scopes and restrict credential and token files to the owning user. 9. Avoid privileged installation where possible, and run the CLI as a non-administrative user.
