T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:4
- Finding
- Unpinned Third-Party CLI Dependency## Vulnerability Details **File Location**: `SKILL.md`, line 4 **Vulnerability Type**: Unpinned and mutable third-party executable dependency **Risk Level**: Medium ### Vulnerable Code ```yaml metadata: {"clawdbot":{"emoji":"📱","requires":{"bins":["wacli"]},"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 offers two installation methods for the `wacli` executable, but neither identifies immutable, reviewed dependency content. The Go installation explicitly uses the mutable `@latest` selector. The Homebrew installation relies on a third-party tap, `steipete/tap`, without pinning a formula revision or documenting integrity verification. Consequently, the code installed in the future may differ from the code reviewed when this Skill was published. If the upstream repository, maintainer account, release process, Go module, or Homebrew tap is compromised, an attacker could distribute modified executable code through these legitimate-looking installation instructions. No evidence establishes that the current upstream dependency is malicious; the vulnerability is the absence of version pinning and integrity controls. ### Attack Path 1. An attacker compromises the upstream repository, release pipeline, maintainer account, Go module distribution path, or custom Homebrew tap. 2. The attacker publishes a malicious `wacli` version or modifies the formula to retrieve altered content. 3. An Agent installs the dependency using `@latest` or the mutable third-party tap. 4. The malicious executable runs with the privileges of the user or Agent invoking it. 5. During authentication, synchronization, message search, history backfill, or message sending, the executable can access data made available to `wacli` and ...[truncated 770 chars]
- Remediation
- ## Remediation Suggestions 1. Replace `github.com/steipete/wacli/cmd/wacli@latest` with a reviewed semantic version or, preferably, an immutable commit identifier. 2. Pin the Homebrew installation to an immutable, reviewed formula or bottle revision where the package mechanism permits it. 3. Verify release artifacts using publisher signatures or documented cryptographic checksums before execution. 4. Record the expected dependency version, artifact digest, trusted publisher identity, and source repository in the Skill metadata. 5. Introduce a controlled update process in which dependency changes are reviewed and tested before the pinned version or digest is updated. 6. Execute the CLI with least privilege and restrict its access to unrelated files, credentials, and environment variables where sandboxing is available.
