T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:15
- Finding
- Unpinned Third-Party CLI Installation Creates a Supply-Chain Risk## Vulnerability Details **File Location**: `SKILL.md:15-18`, `references/setup.md:37-56` **Vulnerability Type**: Unpinned and insufficiently verified third-party dependencies **Risk Level**: Medium ### Vulnerable Code `SKILL.md:15-18` ```yaml install: - kind: node package: "@eat-pray-ai/yutu" bins: [yutu] ``` `references/setup.md:37-56` ```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@latest ``` ### Technical Analysis The skill directs users and compatible agent runtimes to install the external `yutu` CLI without pinning an audited version, immutable commit, package digest, or release checksum. The Go installation explicitly uses the mutable `@latest` reference, while the npm, Homebrew, and Winget instructions similarly resolve whatever version is current when installation occurs. The commands also perform global or system-level installation. Consequently, the code reviewed during the skill audit is not necessarily the code later executed by users. Although no evidence shows that the referenced package is currently malicious, compromise of a package registry account, upstream repository, release pipeline, or package source could replace the effective executable after this skill has been reviewed. ### Attack Path 1. An attacker compromises an upstream package account, repository, build pipeline, or distribution source used for `yutu`. 2. The attacker publishes a malicious release under the expected package or application identity. 3. A user or agent follows one of the unpinned installation commands. 4. The package manager resolves and globally installs the attacker-controlled release. 5. When `yutu` is installed or invoked, malicious package lifecycle logic or executable code runs with the installing user's p ...[truncated 773 chars]
- Remediation
- ## Remediation Suggestions 1. Pin `@eat-pray-ai/yutu` to a specific audited version rather than allowing the package manager to resolve the latest release. 2. Replace `github.com/eat-pray-ai/yutu@latest` with an immutable version or audited commit hash. 3. Identify the expected Homebrew tap, Winget publisher, package identifier, and official distribution source explicitly. 4. Publish and verify SHA-256 checksums or cryptographic signatures for downloaded binaries. 5. Use package-manager lock or integrity metadata where supported. 6. Prefer local, isolated installation over global installation when operationally possible. 7. Document a trusted upgrade process that requires review before changing the pinned release. 8. Run the CLI with only the filesystem and credential access required for the requested operation.
