T08 · Insecure Dependencies
- Location
SKILL.md:17- Finding
Unpinned Third-Party CLI Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 17 and 32
Vulnerability Type: Supply-chain risk from a mutable dependency version
Risk Level: HighVulnerable Code
yaml "module": "github.com/ossianhempel/things3-cli/cmd/things@latest",markdown - Install (recommended, Apple Silicon): `GOBIN=/opt/homebrew/bin go install github.com/ossianhempel/things3-cli/cmd/things@latest`Technical Analysis
The installation instructions retrieve and compile
things3-cliusing the mutable@latestversion. Consequently, the installed source code can differ from the version that was present when this skill was reviewed. The installation is not reproducible, and the skill provides no pinned release, commit identifier, or integrity-verification procedure.This creates a third-party supply-chain risk. If the upstream repository, maintainer account, module publication process, or a future release is compromised, the installation command could retrieve attacker-controlled code. Because
go installcompiles an executable that users and agents are subsequently instructed to run, malicious upstream changes would gain a direct local execution path.Attack Path
- An attacker compromises the upstream repository, maintainer credentials, or release process.
- The attacker publishes a malicious version that becomes the version resolved by
@latest. - A user or automated setup process follows
SKILL.mdand runs:sh GOBIN=/opt/homebrew/bin go install github.com/ossianhempel/things3-cli/cmd/things@latest - Go retrieves and compiles the compromised source into the local
thingsexecutable. - The user or agent invokes
thingsfor a documented operation. - The malicious executable runs with the invoking user's permissions and can access resources available to that execution context.
Impact Assessment
Successful exploitation provides arbitrary code execution with ...[truncated 544 chars]
- Remediation
View remediation
Remediation Suggestions
- Replace
@latestwith a reviewed, immutable release version or commit, for example:sh go install github.com/ossianhempel/things3-cli/cmd/things@vX.Y.Z - Pin the same version in both the metadata installation declaration and the human-readable setup instructions.
- Review the pinned dependency and its transitive dependencies before approving an update.
- Document the expected module version and executable checksum where practical.
- Use an explicit dependency-update process rather than resolving the newest upstream code during installation.
- Execute the CLI with only the filesystem and environment access required for Things operations.
- Replace
