T08 · Insecure Dependencies
- Location
SKILL.md:11- Finding
Unpinned Third-Party CLI Installation Creates Supply-Chain Risk
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:11-25(duplicated inskills/wacli/SKILL.md:11-25)
Vulnerability Type: Unpinned external dependency installation
Risk Level: MediumVulnerable 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 skill permits installation of
waclifrom a third-party Homebrew tap and from a mutable Go module reference ending in@latest. Neither installation method identifies an immutable, audited source revision or package checksum.In particular,
@latestresolves at installation time. The effective program installed on a user's system may therefore differ from the version that existed when this skill was reviewed. The Homebrew formula is similarly controlled through an external tap without an explicit version or integrity constraint in the skill metadata.This is a supply-chain weakness rather than evidence that the currently referenced project is malicious. However, it unnecessarily expands trust to future upstream releases and repository state. Since
wacliis intended to authenticate to WhatsApp, synchronize message history, search messages, and send files or messages, compromise of the installed executable could expose highly sensitive account and conversation data.The package's npm dependencies are separately pinned in
npm-shrinkwrap.jsonwith integrity hashes. The pre-scan warning concerning network transmission in that file was not substantiated as credential exfiltration: its URLs are package registry or funding metadata. The confirmed issue is limited to the mutable external CLI insta ...[truncated 1495 chars]- Remediation
View remediation
Remediation Suggestions
- Replace
@latestwith an explicitly reviewed semantic version or, preferably, an immutable commit:yaml "module": "github.com/steipete/wacli/cmd/wacli@vX.Y.Z" - Pin the Homebrew installation to a controlled and versioned formula where supported.
- Record and verify cryptographic checksums or signatures for distributed artifacts before execution.
- Document the reviewed upstream version and update it only through a deliberate dependency-review process.
- Prefer an official, controlled distribution channel over a third-party tap when one is available.
- Run the CLI with only the filesystem and network permissions required for WhatsApp operations, and isolate its credential store from unrelated user data.
- Apply the same changes to both
SKILL.mdandskills/wacli/SKILL.mdto prevent the duplicated metadata from restoring the unsafe installation path.
- Replace
