T08 · Insecure Dependencies
Error
- Location
- references/setup.md:35
- Finding
- Unpinned Third-Party CLI Installation Without Integrity Verification## Vulnerability Details **File Location**: `SKILL.md:21-25`; `references/setup.md:35-54` **Vulnerability Type**: Unpinned executable dependency and unverified binary installation **Risk Level**: High ### Vulnerable Code `SKILL.md:21-25` ```yaml install: - kind: node package: "@eat-pray-ai/yutu" bins: [yutu] ``` `references/setup.md:35-54` ```bash ```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 ``` ``` ```markdown ### 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 directs users or agents to install and execute the third-party `yutu` CLI without pinning a reviewed version. In particular: - The npm package declaration and `npm i -g` command resolve a mutable package version. - The Go installation explicitly uses the mutable `@latest` reference. - The prebuilt binary instructions use the mutable `/releases/latest` URL. - No cryptographic checksum, signature, provenance attestation, lockfile, or trusted artifact digest is supplied. - The Homebrew and WinGet commands do not identify a reviewed version or document package-source verification. This creates a supply-chain trust boundary in which code that was not present during this audit can later be installed and executed. The risk is elevated because the CLI is given access to Google OAuth client credentials and a cached YouTube authorization token. According to the documented operations, it can upload, update, delete, rate, and report videos. This finding does not establish that the current upstream package is malicious. The vulnerability is the use of mutable, unverified executable dependencies for a credentialed and potentially d ...[truncated 1826 chars]
- Remediation
- ## Remediation Suggestions 1. Pin `@eat-pray-ai/yutu` and the Go module to an explicitly reviewed release rather than using an implicit current version or `@latest`. 2. Record and verify SHA-256 or stronger digests for downloaded binaries before execution. 3. Prefer signed releases and verify signatures against a documented, independently distributed maintainer key. 4. Use registry provenance or software attestations where available, and document the exact trusted Homebrew tap and WinGet package identity. 5. Replace `/releases/latest` links with immutable, versioned artifact URLs. 6. Avoid automatic global installation by an agent. Require explicit user approval before installing or upgrading executable dependencies. 7. Run the CLI with least privilege in an isolated environment, without unrelated home-directory files or secrets. 8. Request only the minimum Google OAuth scopes required for the selected operation. 9. Store token and credential files with restrictive filesystem permissions and keep them outside shared working directories. 10. Establish a controlled upgrade process that reviews release changes, verifies artifacts, tests the pinned version, and updates expected hashes before deployment. 11. Document token revocation and rotation procedures for suspected package or host compromise.
