T08 · Insecure Dependencies
- Location
references/setup.md:35- Finding
Unpinned Third-Party CLI Is Entrusted with YouTube OAuth Credentials
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:17-20;references/setup.md:35-48,53-56
Vulnerability Type: T08: Insecure Dependencies
Risk Level: MediumVulnerable code snippets:
SKILL.md:17-20yaml install: - kind: node package: "@eat-pray-ai/yutu" bins: [yutu]references/setup.md:35-48bash # 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@latestreferences/setup.md:53-56markdown | `YUTU_CREDENTIAL` | Path, base64, or JSON of OAuth client secret | `client_secret.json` | | `YUTU_CACHE_TOKEN` | Path, base64, or JSON of cached OAuth token | `youtube.token.json` | | `YUTU_ROOT` | Root directory for file resolution | Current working directory | | `YUTU_LOG_LEVEL` | Log level: `DEBUG`, `INFO`, `WARN`, `ERROR` | `INFO` |Technical Analysis
The installation instructions retrieve a third-party executable without pinning an audited version or verifying its integrity. The npm command implicitly selects the registry's current version, while the Go installation explicitly selects
@latest. The Homebrew, Winget, and release-binary alternatives also do not document an immutable version, checksum, or signature verification procedure.This does not prove that the current
yutupackage is malicious. However, it creates a supply-chain trust boundary in which the code executed by users can change after the Skill itself has been reviewed. A compromised maintainer account, package registry entry, release artifact, or future package version could therefore introduce arbitrary code.The risk is increased because the installed CLI is instructed to process
YUTU_CREDENTIALandYUTU_CACHE_TOKEN, which may contain an OAuth client secret and a cached YouTube access or refresh token. Global installation also ...[truncated 1466 chars]- Remediation
View remediation
Remediation Suggestions
- Pin
@eat-pray-ai/yutuand the Go module to a specific, reviewed version rather than relying on the current registry version or@latest. - Where supported, enforce package integrity using lockfiles, registry integrity hashes, signed provenance, or equivalent package-manager verification.
- Publish SHA-256 checksums and signature-verification instructions for prebuilt release binaries.
- Document the verified publisher, repository, and expected package identifiers so users can detect dependency-confusion or impersonation attempts.
- Test and approve dependency upgrades before changing the pinned version.
- Request only the minimum OAuth scopes needed for listing video categories and clearly document those scopes before authorization.
- Determine whether category listing can use an API key or unauthenticated public endpoint; if so, avoid exposing reusable OAuth tokens for this operation.
- Store token files with restrictive filesystem permissions and avoid passing raw credential JSON or tokens through environments where unrelated processes may inspect them.
- Recommend installation and execution from a non-privileged account, and warn users not to run the global installation or CLI with unnecessary administrative privileges.
- Pin
