T08 · Insecure Dependencies
- Location
SKILL.md:20- Finding
Unpinned Go Dependency Allows Supply-Chain Substitution
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 20–25
Vulnerability Type: Unpinned executable dependency from a mutable upstream reference
Risk Level: MediumVulnerable Code
json { "id": "go", "kind": "go", "module": "github.com/steipete/wacli/cmd/wacli@latest", "bins": ["wacli"], "label": "Install wacli (go)" }Technical Analysis
The Go installation specification uses the mutable
@latestreference rather than an audited release version or immutable commit. The binary installed in the future can therefore differ from the implementation that was reviewed when this skill was published.If the upstream repository, maintainer account, release process, or dependency chain is compromised,
go installmay build and install attacker-controlled executable code. The skill subsequently directs users or agents to invoke that binary for WhatsApp authentication, message-history synchronization, searches, and message or file transmission.No malicious behavior in the current upstream package is established by the reviewed file. The vulnerability is the absence of dependency immutability and provenance controls.
Attack Path
- An attacker compromises the upstream repository, a maintainer account, its release pipeline, or a relevant dependency.
- The attacker publishes a malicious version that becomes the version resolved by
github.com/steipete/wacli/cmd/wacli@latest. - A user installs the skill dependency through the documented Go installation method.
- Go retrieves, builds, and installs the substituted code as the
wacliexecutable. - The user or agent invokes
waclifor authentication, synchronization, history access, or messaging. - The malicious binary executes with the installing user's privileges and may access data available to that process.
Impact Assessment
Successful exploitation permits arbitrary code execution with the privileges of the user who installs or runs
wacli. Within those privil ...[truncated 590 chars]- Remediation
View remediation
Remediation Suggestions
- Replace
@latestwith a specific, audited semantic version, for example:json "module": "github.com/steipete/wacli/cmd/wacli@vX.Y.Z" - For stronger immutability, pin an explicitly reviewed commit where the installation framework supports it.
- Establish a controlled update process that reviews source changes and security advisories before changing the pinned version.
- Verify release provenance, signatures, and checksums where supported by the upstream release process.
- Use automated dependency monitoring to identify security updates without automatically installing unaudited releases.
- Document the expected package owner and canonical repository so maintainers can detect repository substitution or ownership changes.
- Replace
