T08 · Insecure Dependencies
Warning
- Location
- references/setup.md:38
- Finding
- Unpinned Third-Party CLI Installation Creates a Supply-Chain Risk< and place it in your PATH. ``` Related metadata in `SKILL.md:15-19`: ```yaml install: - kind: node package: "@eat-pray-ai/yutu" bins: [yutu] ``` ### Technical Analysis The Skill instructs users or agents to install and execute a third-party CLI without pinning an audited version or requiring artifact-integrity verification. The npm command resolves the package manager's current default version, the Go command explicitly uses `@latest`, and the GitHub URL points to the mutable `latest` release. The package-manager instructions also do not specify checksums, signatures, lockfiles, or immutable release identifiers. Consequently, the executable installed when the Skill is used may differ from the version that existed when the Skill documentation was reviewed. A compromise of the upstream publisher account, source repository, release pipeline, registry entry, or package-manager distribution could substitute malicious executable code. There is no evidence in the audited files that the named project is malicious, typosquatted, or currently compromised. The issue is the absence of dependency pinning and integrity controls. ### Attack Path 1. An attacker compromises an upstream publisher account, repository, package registry, release workflow, or package-manager entry associated with `yutu`. 2. The attacker publishes a malicious version or replaces the ...[truncated 1328 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin every installation method to a specific audited version rather than relying on package-manager defaults, `@latest`, or a mutable `latest` release URL. 2. Publish SHA-256 or stronger cryptographic checksums for prebuilt binaries and require users to verify them before execution. 3. Sign release artifacts and document signature verification using a maintained signing mechanism such as Sigstore or platform-native package signing. 4. Use immutable release URLs and commit or tag references whose contents cannot be silently replaced. 5. Record the expected package name, version, source repository, and integrity digest in the Skill metadata. 6. Prefer a project-local, version-locked installation over a global installation where supported. 7. Document the minimum OAuth scopes required by the supported operations and advise users not to grant broader permissions. 8. Recommend restrictive filesystem permissions for `client_secret.json` and `youtube.token.json`, along with token revocation and rotation procedures for suspected dependency compromise. 9. Add a release-review process that re-audits the pinned CLI version before updating the version or integrity digest referenced by the Skill. ]]>
