T08 · Insecure Dependencies
- Location
references/setup.md:30- Finding
Unpinned Third-Party CLI Installation Without Integrity Verification
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:17-25,references/setup.md:30-54
Vulnerability Type: Unpinned and unverified third-party executable dependency
Risk Level: HighVulnerable Code
SKILL.md:17-25:yaml homepage: https://github.com/eat-pray-ai/yutu install: - kind: node package: "@eat-pray-ai/yutu" bins: [yutu]references/setup.md:30-54:markdown ## Installation 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@latestOther platforms
Download a prebuilt binary from the releases page and place it in your PATH.
text ### Technical Analysis The skill directs users to install and execute the third-party `yutu` CLI without pinning an audited version. The Go command explicitly selects `@latest`, the release link resolves to the mutable latest release, and the npm, Homebrew, and Winget instructions similarly omit version constraints. No checksum, cryptographic signature, provenance attestation, or other integrity-verification procedure is documented. This creates a supply-chain trust boundary in which the code reviewed as part of this skill does not determine the code ultimately executed. A compromised publisher account, package registry, source repository, release pipeline, package-manager formula, or upstream release could substitute a malicious executable after this skill has been audited. The risk is elevated because the CLI is expected to process Google OAuth client credentials and cached YouTube authorization tokens. It can also perform account-affecting operations, including creating, updating, deleting, rejecting, and marking comments as spam. The global npm installation recommendation can additionally expose the executable broa ...[truncated 2348 chars]- Remediation
View remediation
Remediation Suggestions
-
Pin immutable versions
- Replace unversioned npm installation with a specific audited release, for example
npm install --global @eat-pray-ai/yutu@<audited-version>. - Replace
go install ...@latestwith an audited semantic version or immutable commit. - Link to a specific release rather than
/releases/latest. - Pin Homebrew and Winget package versions where supported.
- Replace unversioned npm installation with a specific audited release, for example
-
Verify downloaded artifacts
- Publish SHA-256 or stronger digests for every supported binary.
- Document an explicit checksum-verification command before execution.
- Prefer cryptographically signed releases and verify signatures against a documented, independently distributed maintainer key.
- Where available, verify package provenance or build attestations.
-
Reduce installation scope
- Avoid global installation where practical.
- Run the dependency in a dedicated environment, container, or restricted user account.
- Ensure the executable is not installed with administrator or root privileges unless strictly required.
-
Protect OAuth material
- Store credential and token files with owner-only permissions.
- Grant only the minimum OAuth scopes needed for the requested operation.
- Avoid exposing credentials through command-line arguments, logs, or broadly inherited environment variables.
- Revoke and rotate tokens immediately if dependency compromise is suspected.
-
Establish dependency governance
- Record the approved version and its digest in the skill documentation or lockfile.
- Review release changes before updating the approved version.
- Automate vulnerability, provenance, and integrity checks in the release process.
- Document the expected package owner, repository, signing identity, and official distribution channels to reduce dependency-confusion and spoofing risks.
-
