T08 · Insecure Dependencies
- Location
SKILL.md:5- Finding
Unpinned Third-Party CLI Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 5
Vulnerability Type: Supply-chain risk caused by a mutable dependency reference
Risk Level: Mediumyaml metadata: {"clawdbot":{"emoji":"🎛️","requires":{"bins":["eightctl"]},"install":[{"id":"go","kind":"go","module":"github.com/steipete/eightctl/cmd/eightctl@latest","bins":["eightctl"],"label":"Install eightctl (go)"}]}}Technical Analysis
The installation metadata retrieves
github.com/steipete/eightctl/cmd/eightctl@latest. The@latestreference is mutable and does not identify the exact source revision that was reviewed. Consequently, an installation performed later can download and execute code that differs from the version available at audit time.The referenced implementation is not included in the audited project, so its behavior could not be independently verified. Although using a public Go module is not inherently malicious, relying on its latest release without an immutable version, commit, checksum policy, or signature verification creates a supply-chain exposure. A compromised upstream repository, maintainer account, release process, or future malicious release could introduce arbitrary executable behavior.
Attack Path
- An attacker compromises the upstream repository, a maintainer account, or the release process, or otherwise causes a malicious version to become the module's latest release.
- A user or agent installs the required tool through the Skill metadata.
- The Go installer resolves
@latestto the attacker-controlled version. - The resulting
eightctlbinary executes with the installing user's privileges when the Skill invokes commands such aseightctl status. - The malicious binary can access resources available to that user, potentially including environment variables and the documented Eight Sleep configuration at
~/.config/eightctl/config.yaml.
Impact Assessment
Successful exploitation could pr ...[truncated 446 chars]
- Remediation
View remediation
Remediation Suggestions
- Replace
@latestwith a specific, reviewed semantic version or immutable commit identifier. - Record and verify the expected module checksum through Go's checksum mechanisms and a trusted module source.
- Review the pinned dependency source and its transitive dependencies before approving updates.
- Adopt a controlled dependency-update process that performs security review and testing before changing the pinned version.
- Where supported, verify signed releases or provenance attestations and distribute a reproducibly built, checksum-verified binary.
- Run the CLI with least privilege and limit its access to unrelated files, secrets, and environment variables.
- Replace
