T08 · Insecure Dependencies
- Location
references/setup.md:35- Finding
Unpinned Third-Party CLI Installed with Access to OAuth Credentials
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:18-20;references/setup.md:35-50
Vulnerability Type: Unpinned third-party executable dependency
Risk Level: MediumVulnerable Code
SKILL.md:18-20:yaml - kind: node package: "@eat-pray-ai/yutu" bins: [yutu]references/setup.md:35-50: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@latestTechnical Analysis
The Skill directs users to install a third-party executable without pinning an audited version. The Go installation explicitly uses the mutable
@latestrelease, while the npm, Homebrew, and WinGet commands also resolve whichever version is current at installation time.No lockfile, cryptographic checksum, signature-verification procedure, immutable release identifier, or vendored source is supplied. Consequently, the executable installed by a user can differ from the artifact that was originally reviewed.
This is particularly sensitive because the CLI is subsequently given access to
client_secret.jsonandyoutube.token.json. A malicious or compromised future release could read these files, extract OAuth material, make unauthorized API requests, or execute arbitrary commands under the installing user's account.Attack Path
- An attacker compromises a package registry account, upstream repository, release pipeline, package-manager formula, or a future version of the
yutuproject. - The attacker publishes a malicious version under the same package or release channel.
- A user follows the documented installation command, which resolves the unpinned or
latestversion. - The package manager installs and executes the attacker-controlled CLI with the user's local privileges.
- The user invokes
yutu author `yutu i18nLanguage ...[truncated 801 chars]
- An attacker compromises a package registry account, upstream repository, release pipeline, package-manager formula, or a future version of the
- Remediation
View remediation
Remediation Suggestions
- Pin an explicitly reviewed
yutuversion in every installation method instead of using mutable defaults or@latest. - Publish SHA-256 checksums and cryptographic signatures for prebuilt binaries, and require users to verify them before installation.
- Use package-manager lockfiles or equivalent integrity metadata where supported.
- Document the exact expected package publisher, repository, package identifier, and release provenance so users can detect dependency confusion or spoofed packages.
- Prefer installation in an isolated environment rather than as a global executable.
- Document and request only the minimum Google OAuth scopes required for listing internationalization languages.
- Restrict filesystem permissions on
client_secret.jsonandyoutube.token.json, and advise users not to expose their contents through logs or shell history. - Add a release-review process that verifies the pinned source revision, build provenance, dependency tree, and distributed artifacts before updating the recommended version.
- Pin an explicitly reviewed
