T08 · Insecure Dependencies
- Location
SKILL.md:11- Finding
Unpinned Third-Party wacli Dependency
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 11–23
Vulnerability Type: Unpinned third-party dependency from mutable remote sources
Risk Level: MediumComplete Code Snippet:
yaml "install": [ { "id": "brew", "kind": "brew", "formula": "steipete/tap/wacli", "bins": ["wacli"], "label": "Install wacli (brew)", }, { "id": "go", "kind": "go", "module": "github.com/steipete/wacli/cmd/wacli@latest", "bins": ["wacli"], "label": "Install wacli (go)", }, ],Technical Analysis
The installation configuration obtains
waclifrom third-party GitHub and Homebrew namespaces without pinning it to an immutable, reviewed artifact. The Go installation explicitly uses the mutable@latestselector. The Homebrew formula is likewise not constrained to a reviewed version, commit, checksum, or signature in the Skill configuration.As a result, the code installed in the future may differ from the code available when this Skill was audited. An attacker who compromises the upstream repository, release process, maintainer account, or Homebrew tap could distribute modified executable code through these trusted installation paths.
Attack Path
- An attacker compromises the upstream GitHub repository, release infrastructure, maintainer credentials, or Homebrew tap.
- The attacker publishes a malicious release or changes the artifact selected by the mutable installation reference.
- A user or agent installs
waclithrough the Skill's Go or Homebrew installation path. - The package manager resolves and installs the attacker-controlled artifact without verification against a version and integrity value approved during review.
- The malicious binary executes with the privileges of the user running
wacli. - During authentication, synchronization, history searches, backfills, or message sending, th ...[truncated 725 chars]
- Remediation
View remediation
Remediation Suggestions
- Replace
@latestwith a specific, reviewed semantic version or immutable commit identifier. - Pin the Homebrew installation to a reviewed release rather than implicitly accepting future formula changes.
- Record and verify cryptographic checksums for distributed binaries or source archives.
- Prefer signed releases and verify signatures against a documented, trusted maintainer key.
- Use dependency lockfiles or reproducible-build controls where supported.
- Re-audit the dependency before updating the pinned version or commit.
- Install and execute the tool with least privilege, and restrict access to
~/.waclibecause it may contain sensitive WhatsApp data and session material. - Where feasible, retrieve dependencies through an organization-controlled registry or mirror that admits only reviewed artifacts.
- Replace
