T08 · Insecure Dependencies
- Location
SKILL.md:17- Finding
Unpinned Third-Party CLI Installation from Mutable Sources
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:17-21;references/setup.md:35-54
Vulnerability Type: Unpinned and unverifiable third-party executable dependency
Risk Level: MediumThe skill declares and recommends installation of the third-party
yutuCLI without pinning an audited version or requiring artifact integrity verification.Relevant code from
SKILL.md:17-21:yaml homepage: https://github.com/eat-pray-ai/yutu install: - kind: node package: "@eat-pray-ai/yutu" bins: [yutu]Relevant code from
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@latestOther platforms
Download a prebuilt binary from the releases page and place it in your PATH.
text ### Technical Analysis The npm package declaration has no version constraint, and the setup guide explicitly uses `@latest` and the mutable `releases/latest` endpoint. No checksum, digital signature, immutable commit, lockfile, or other integrity control is specified. Consequently, the executable installed by a user can differ from the version that existed when the skill was audited. The global npm command also installs package-controlled executable content in the user's environment. Package-manager formulae and release downloads similarly depend on mutable external repositories and their current state. This is a supply-chain weakness rather than evidence that the current `yutu` package is malicious. The documented GitHub organization and npm scope are consistent, and the reviewed files contain no direct evidence of typosquatting or intentional malicious behavior. ### Attack Path 1. An attacker compromises the upstream maintainer account, package re ...[truncated 1454 chars]- Remediation
View remediation
Remediation Suggestions
- Pin
@eat-pray-ai/yututo a specific audited version rather than allowing automatic resolution to the newest release. - Replace
go install github.com/eat-pray-ai/yutu@latestwith a fixed semantic version or immutable commit hash. - Replace
releases/latestwith a version-specific release URL. - Publish SHA-256 checksums for downloaded binaries and require users to verify them before execution.
- Prefer signed releases and document signature verification using a trusted maintainer key or a provenance framework such as Sigstore.
- Pin package-manager formula versions where supported and document the expected package source.
- Avoid global npm installation where practical; use a project-local, locked dependency or an isolated execution environment.
- Record the audited dependency version and periodically review it before updating.
- Restrict OAuth scopes to the minimum necessary and protect credential and token files with least-privilege filesystem permissions.
- Pin
