T08 · Insecure Dependencies
- Location
SKILL.md:20- Finding
Unpinned Third-Party CLI Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:20andSKILL.md:37
Vulnerability Type:T08: Insecure Dependencies
Risk Level: MediumVulnerable code:
yaml install: - kind: go package: github.com/swaggo/swag/cmd/swag@latest bins: [swag]markdown **Dependencies:** - swag: `go install github.com/swaggo/swag/cmd/swag@latest`Technical Analysis
The Skill installs the
swagexecutable from the mutable@latestversion of a third-party Go module. The package name corresponds to the declared Swagger tooling and there is no evidence that the current upstream package is malicious. However, using@latestmeans the effective executable can change after this Skill has been reviewed.This creates a supply-chain trust gap: every installation automatically selects the version currently resolved as latest rather than a specific, reviewed release. Although downloading and compiling an ordinary Go command does not itself run the resulting command, this Skill permits and recommends subsequent
swagexecution. A compromised or malicious future release would therefore execute when the generated binary is invoked.Attack Path
- An attacker compromises the upstream repository, release process, module publisher, or a dependency incorporated into a future
swagrelease. - The compromised release becomes the version resolved by
github.com/swaggo/swag/cmd/swag@latest. - A user or Skill harness follows the installation metadata or documented command.
- Go downloads and compiles the mutable release into a local
swagexecutable. - The Skill invokes
swag init,swag fmt, or another allowedswagcommand. - The compromised executable runs with the privileges and filesystem/network access of the user or agent process.
This path depends on an upstream supply-chain compromise; no such compromise was identified in the audited files.
Impact Assessment
A mal ...[truncated 762 chars]
- An attacker compromises the upstream repository, release process, module publisher, or a dependency incorporated into a future
- Remediation
View remediation
Remediation Suggestions
-
Replace
@latestin both installation locations with a specific reviewed semantic version:yaml install: - kind: go package: github.com/swaggo/swag/cmd/swag@vX.Y.Z bins: [swag]markdown - swag: `go install github.com/swaggo/swag/cmd/swag@vX.Y.Z` -
Keep the metadata and documentation versions synchronized so users cannot inadvertently bypass the pinned version.
-
Review release notes, source changes, transitive dependencies, and known vulnerabilities before updating the pin.
-
Perform version updates through a controlled dependency-review process rather than automatically tracking the latest release.
-
Retain Go module checksum verification and use a trusted module proxy or an organization-controlled dependency mirror where appropriate.
-
Run the CLI in a least-privilege environment with access limited to the target repository and without unnecessary credentials or sensitive environment variables.
-
