Back to skill

Security audit

wacli WhatsApp

Security checks for vulnerabilities and agentic risk

Overview

This skill has a coherent WhatsApp CLI purpose, but it gives broad shell-based messaging instructions with unsafe dynamic command templates and an unpinned third-party install path.

Review this skill before installing. Use it only if you trust wacli and its Homebrew tap, are comfortable granting local access to WhatsApp account state and message history, and can ensure commands are run with argument-array execution or robust escaping rather than interpolated shell strings. Verify recipients, message contents, and file paths before any send action, and treat ~/.wacli as sensitive account data.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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
Findings (2)

T09 · Insecure Skill Coding Practices

Error
Location
SKILL.md:35
Finding

Shell Command Injection Through Unescaped User-Controlled Arguments

Content
View full analysis
--message ""` Quoted reply (needs message id, usually from `messages list/search/show/context`): - `wacli send text --to --message "" --reply-to ` React: - `wacli send react --to --id [--reaction ""]` ## Send a file - `wacli send file --to --file [--caption ""] [--filename ] [--mime ]` ## Finding chats / message ids - Search messages: - `wacli messages search ""` ``` ### Technical Analysis The Skill tells the Agent to execute `wacli` commands while placing user-controlled values directly into shell-style command templates. The affected values include recipients, message text, message IDs, reactions, file paths, captions, display names, MIME types, and search queries. Double quotes do not provide sufficient shell safety when substituted values can themselves contain quotes, command substitutions, backticks, newlines, or other shell metacharacters. Several parameters, including phone numbers, JIDs, message IDs, file paths, display names, and MIME types, are not quoted at all. If the `exec` facility passes the constructed command through a shell, malicious input can terminate the intended argument and introduce additional shell syntax. The resulting commands would execute with the same operating-system privileges as the Agent or its runtime process. ### Attack Path 1. An attacker supplies content used by the Skill, such as message text, a search query, caption, filename, file path, recipient, or message ID. 2. The supplied value contains shell syntax designed to escape the intended argument, such ...[truncated 1246 chars]
Remediation
View remediation

T08 · Insecure Dependencies

Warning
Location
SKILL.md:20
Finding

Unpinned Third-Party Homebrew Dependency

Content
View full analysis
Remediation
View remediation
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.