T08 · Insecure Dependencies
- Location
SKILL.md:17- Finding
Unpinned External Tool Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 17-20
Vulnerability Type: Supply-chain exposure through a floating dependency version
Risk Level: MediumVulnerable code:
yaml install: - kind: go package: github.com/cweill/gotests/...@latest bins: [gotests]Technical Analysis
The Skill declares an installation of
github.com/cweill/gotests/...@latest. The@latestselector does not identify an immutable, audited release. Consequently, the code retrieved and installed can change after this Skill has been reviewed.Installing
gotestsis reasonably related to the declared Go testing functionality, so requesting this tool does not inherently exceed the Skill's functional scope. However, allowing the installation mechanism to select an arbitrary future release grants unnecessary trust to mutable upstream state. A compromised maintainer account, repository, release process, or dependency graph could cause attacker-controlled code to be compiled and executed during installation.The Skill also permits network-capable tools such as
WebFetchand documentation services. No instruction was found that directs the agent to transmit credentials, source files, environment variables, or other sensitive local information through those tools. The pre-scan warning concerning sensitive network transmission was therefore not confirmed as a separate vulnerability.Attack Path
- An attacker compromises the upstream
github.com/cweill/gotestsrepository, its maintainer credentials, release process, or a dependency selected by a future version. - The attacker publishes a version that Go resolves as
latest. - A harness loads the Skill and processes its installation declaration.
- The harness downloads and compiles the mutable upstream source.
- Attacker-controlled initialization, build-time, installation-time, or subsequently invoked tool behavior executes with the permissions o ...[truncated 1072 chars]
- An attacker compromises the upstream
- Remediation
View remediation
Remediation Suggestions
-
Replace
@latestwith a reviewed, explicit semantic version, for example:yaml install: - kind: go package: github.com/cweill/gotests/...@v1.6.0 bins: [gotests]The exact version should be selected only after reviewing its source and release provenance.
-
Where the installation framework supports it, verify downloaded source or artifacts using an expected checksum, signed release, or trusted provenance attestation.
-
Disable automatic installation by default. Ask for user confirmation before downloading or installing the tool, especially in CI environments or repositories containing secrets.
-
Perform installation and execution in a sandbox with access restricted to the target project, minimal environment variables, no credential stores, and network access disabled unless explicitly required.
-
Maintain a controlled dependency-update process. Review new versions, regenerate checksums, run security scanning, and deliberately update the pinned version rather than resolving mutable upstream state at runtime.
-
Consider removing
gotestsfrom the required binaries if the Skill can provide its core Testify guidance without test-generation tooling. This would further reduce privileges and supply-chain exposure.
-
