T08 · Insecure Dependencies
- Location
SKILL.md:5- Finding
Unpinned Third-Party Go Dependency Installed from a Mutable Source
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 5 and 13
Vulnerability Type: Supply-chain risk caused by an unpinned executable dependency
Risk Level: MediumVulnerable code snippets:
yaml metadata: {"clawdbot":{"emoji":"📰","requires":{"bins":["blogwatcher"]},"install":[{"id":"go","kind":"go","module":"github.com/Hyaxia/blogwatcher/cmd/blogwatcher@latest","bins":["blogwatcher"],"label":"Install blogwatcher (go)"}]}}shell go install github.com/Hyaxia/blogwatcher/cmd/blogwatcher@latestTechnical Analysis
The installation metadata and documentation instruct the user or agent to install
github.com/Hyaxia/blogwatcher/cmd/blogwatcher@latest. The@latestselector is mutable: it resolves the dependency version at installation time rather than identifying the exact version that was reviewed.The Go toolchain retrieves the selected source code, compiles it, and installs an executable. Consequently, the behavior installed in the future can differ from the behavior available when this Skill was audited. The project provides no immutable version or commit pin, expected checksum, signature, or provenance verification for the executable dependency.
This is a supply-chain weakness rather than evidence that the current upstream project is malicious. The local package contains no executable scripts, and no malicious behavior was identified in the two reviewed files.
Attack Path
- An attacker compromises the upstream repository, its maintainer account, or a future release selected by
@latest. - The attacker introduces malicious behavior into the upstream
blogwatchercommand. - A user or agent follows the Skill's installation metadata or documented command.
- The Go toolchain retrieves and compiles the attacker-controlled latest source.
- The resulting executable is installed and subsequently invoked as the trusted
blogwatchercommand. - The malicious executable oper ...[truncated 763 chars]
- An attacker compromises the upstream repository, its maintainer account, or a future release selected by
- Remediation
View remediation
Remediation Suggestions
- Replace
@latestwith a reviewed, immutable semantic version in both the installation metadata and documentation, for example:shell go install github.com/Hyaxia/blogwatcher/cmd/blogwatcher@vX.Y.Z - Keep the version in line 5 synchronized with the command documented on line 13.
- Review upstream source and release provenance before updating the pinned version.
- Use Go module checksum verification and retain expected dependency information in a controlled build process.
- Where available, verify signed releases, attestations, or reproducible build output before distributing or invoking the binary.
- Run the installed tool with least privilege and restrict access to unnecessary credentials and sensitive files.
- Adopt an explicit dependency-update process so upgrades are reviewed and tested rather than selected dynamically during installation.
- Replace
