Back to skill

Security audit

Whats 1.0.0

Security checks for vulnerabilities and agentic risk

Overview

This skill is a straightforward WhatsApp CLI integration with disclosed messaging, sync, and local store behavior, though users should trust the external CLI before installing it.

Install this only if you trust the wacli project and are comfortable granting it access to WhatsApp login state and message history. Confirm recipients and message text carefully before sending, and consider using a separate store path if you want to limit where WhatsApp session data is kept.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:5
Finding
Unpinned External CLI Dependency Allows Supply-Chain Substitution<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, line 5 **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 installation metadata permits `wacli` to be installed from either the custom Homebrew tap `steipete/tap/wacli` or the mutable Go module reference `github.com/steipete/wacli/cmd/wacli@latest`. The Go dependency is not pinned to a reviewed version or immutable commit. The Homebrew option likewise specifies no version, checksum, signature, or other integrity constraint in the Skill. As a result, the executable installed later may differ from the implementation that existed when the Skill was reviewed. This creates a third-party supply-chain risk. If the upstream repository, release process, package-hosting account, or custom Homebrew tap is compromised, an attacker could publish a modified release that is selected by `@latest` or by the tap formula. There is no evidence in the audited files that the current upstream dependency is malicious; the vulnerability is the lack of reproducible version and integrity controls. ### Attack Path 1. An attacker compromises the upstream repository, release account, Go module distribution path, or custom Homebrew tap. 2. The attacker publishes a modified `wacli` release or changes the formula to resolve to malicious executable code. 3. A user or agent follows the Skill installation metadata after the upstream change. 4. The package manager downloads and builds or installs the mutable dependency without validation against a Skill-maintained version, checksum, or signature. 5. The malicio ...[truncated 1112 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Replace `@latest` with a reviewed, explicit semantic version or immutable commit: ```yaml module: github.com/steipete/wacli/cmd/wacli@vX.Y.Z ``` 2. Pin the Homebrew installation to a versioned formula where the platform supports it, or replace the custom tap workflow with a trusted, immutable release artifact. 3. Record and verify cryptographic checksums for downloaded release artifacts. 4. Prefer signed releases and verify signatures against a documented, trusted maintainer key. 5. Document the expected dependency version and update it only through a review process that examines upstream changes. 6. Use reproducible builds or compare built artifacts against trusted provenance attestations where available. 7. Run the CLI with the least privileges required and restrict access to `~/.wacli`, because that directory may contain sensitive authentication and message data. ]]>
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep

Static analysis

No suspicious patterns detected.