T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:5
- Finding
- Unpinned Third-Party CLI Installation Creates a Supply-Chain Risk## Vulnerability Details **File Location**: `SKILL.md`, lines 5-12 **Vulnerability Type**: Unpinned and mutable third-party dependency installation **Risk Level**: Medium **Vulnerable Code Snippet**: ```yaml metadata: {"openclaw":{"emoji":"📊","requires":{"bins":["porteden"],"env":["PE_API_KEY"]},"primaryEnv":"PE_API_KEY","install":[{"id":"brew","kind":"brew","formula":"porteden/tap/porteden","bins":["porteden"],"label":"Install porteden (brew)"},{"id":"go","kind":"go","module":"github.com/porteden/cli/cmd/porteden@latest","bins":["porteden"],"label":"Install porteden (go)"}]}} ``` ```markdown If `porteden` is not installed: `brew install porteden/tap/porteden` (or `go install github.com/porteden/cli/cmd/porteden@latest`). ``` ### Technical Analysis The Skill directs users or agents to install the `porteden` executable from mutable third-party sources. In particular, the Go installation uses `@latest`, which resolves to whichever release is current at installation time rather than an immutable, previously reviewed version. The Homebrew alternative similarly references a third-party tap without a pinned version or documented integrity verification. Consequently, the effective executable can change after this Skill has been audited without any corresponding change to `SKILL.md`. If the upstream repository, release account, module distribution process, or Homebrew tap is compromised, an attacker could distribute a modified executable under the legitimate package name. The installation instructions do not require checksum, signature, provenance, or publisher verification. This is a supply-chain weakness rather than evidence that the currently referenced project is malicious. ### Attack Path 1. An attacker compromises the upstream GitHub repository, release process, Go module source, Homebrew tap, or an authorized publisher account. 2. The attacker publishes a malicious version that is selected by `@latest` or served through ...[truncated 1475 chars]
- Remediation
- ## Remediation Suggestions 1. Replace `github.com/porteden/cli/cmd/porteden@latest` with a specific reviewed semantic version or immutable commit identifier. 2. Pin the Homebrew installation to a reviewed release where supported, or provide a versioned binary installation process. 3. Publish expected SHA-256 checksums for supported artifacts and require checksum verification before execution. 4. Prefer cryptographically signed releases and verify signatures against a documented, trusted publisher key. 5. Use build provenance or artifact attestations, such as SLSA-compatible provenance, and document how users can verify them. 6. Periodically review and deliberately update the pinned version rather than resolving the newest release automatically. 7. Document the canonical repository, package publisher, expected binary identity, and trusted Homebrew tap to reduce repository-substitution and spoofing risks. 8. Run the CLI with least-privilege Google scopes and narrowly restricted tokens. Avoid exposing broader Drive permissions unless the requested operation requires them. 9. Where practical, isolate the CLI in a restricted execution environment with limited filesystem, network, and environment-variable access.
