T08 · Insecure Dependencies
- Location
references/setup.md:38- Finding
Unpinned Third-Party CLI Installation Creates a Supply-Chain Risk
- Content
View full analysis
Vulnerability Details
File Location:
references/setup.md:38-52; related package declaration atSKILL.md:17-20
Vulnerability Type: Unpinned and unverifiable third-party dependencies
Risk Level: MediumVulnerable Code
references/setup.md:38-52: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@latestThe same guide also recommends downloading an unverified prebuilt binary:
markdown Download a prebuilt binary from the [releases page](https://github.com/eat-pray-ai/yutu/releases/latest) and place it in your PATH.Related declaration in
SKILL.md:17-20:yaml install: - kind: node package: "@eat-pray-ai/yutu" bins: [yutu]Technical Analysis
The installation instructions resolve and execute mutable third-party artifacts without pinning an audited version, immutable commit, checksum, or cryptographic signature. The Go instruction explicitly uses
@latest, while the npm, Homebrew, Winget, and release-page instructions similarly select whichever artifact is current when installation occurs.Consequently, the executable installed by a user can differ from the version that was reviewed. If the upstream repository, package registry account, release pipeline, package-manager manifest, or maintainer credentials are compromised, an attacker could publish a malicious version under the legitimate package identity. A dependency-confusion or typosquatting condition was not observed in the audited files; the confirmed weakness is the absence of immutable version and integrity controls.
This risk is amplified because the CLI requires access to Google OAuth material through
YUTU_CREDENTIAL,YUTU_CACHE_TOKEN,client_secret.json, andyoutube.token.json. A compromised executable would run in the same user ...[truncated 1881 chars]- Remediation
View remediation
Remediation Suggestions
- Pin
yututo a specifically reviewed version rather than relying on the current default or@latest. - For Go installation, use an explicit version such as
go install github.com/eat-pray-ai/yutu@vX.Y.Z. - For npm installation, specify an exact version and avoid version ranges, for example
npm install --global @eat-pray-ai/yutu@X.Y.Z. - Pin the package version in the
SKILL.mdinstallation metadata if the platform supports version constraints. - Publish SHA-256 checksums for prebuilt binaries and require users or automated installers to verify them before execution.
- Prefer cryptographically signed releases and document signature verification using a trusted, separately distributed public key.
- Pin package-manager formulas or manifests to reviewed versions where supported, and verify their provenance and integrity metadata.
- Avoid global installation where practical. Run the CLI in a restricted environment with only the minimum filesystem and network access required.
- Grant the narrowest possible Google OAuth scopes and protect token files with owner-only filesystem permissions.
- Establish a controlled upgrade process in which new versions are reviewed, integrity-verified, and explicitly approved before the documented pin is changed.
- Pin
