Back to skill

Security audit

WhatsApp

Security checks for vulnerabilities and agentic risk

Overview

The skill is coherent for WhatsApp Business messaging, but it asks users to install and allow a mutable third-party plugin that can send real customer messages and handle account tokens.

Install only if you trust ClawLink and the ClawHub plugin distribution path. Before use, confirm the plugin version/source where possible, understand that ClawLink will store and use your WhatsApp Business token, and require explicit approval for every message, media send, template creation, or deletion.

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:51
Finding
Unpinned Third-Party Plugin Installation Creates a Supply-Chain Risk## Vulnerability Details **File Location**: `SKILL.md`, lines 51–55 **Vulnerability Type**: Unpinned executable dependency installed from an external package registry **Risk Level**: Medium ### Vulnerable Code ```bash openclaw plugins install clawhub:clawlink-plugin openclaw config set tools.alsoAllow '["clawlink-plugin"]' --strict-json openclaw gateway restart ``` ### Technical Analysis The setup instructions install an externally maintained executable plugin using the mutable identifier `clawhub:clawlink-plugin`. They then add that plugin to OpenClaw's allowed tool configuration and restart the gateway, causing the downloaded component to become active. The audited project does not contain the plugin's source code, an immutable version, a cryptographic checksum, signature-verification instructions, or other material that would allow the installed artifact to be matched to a reviewed release. Although the documentation describes the plugin as verified, that assertion cannot be independently established from the project contents. This creates a supply-chain trust boundary: the effective behavior loaded into OpenClaw depends on the package registry, publisher account, and plugin release available when installation occurs. That behavior may change after this skill has been reviewed. ### Attack Path 1. An attacker compromises the plugin publisher account, distribution registry, release process, or another component of the plugin supply chain. 2. The attacker publishes a modified plugin under the mutable `clawhub:clawlink-plugin` identifier. 3. A user follows the documented installation command. 4. OpenClaw downloads the modified executable component without checking a project-specified version or checksum. 5. The configuration command explicitly adds the plugin to the allowed tool set. 6. Restarting the gateway loads and activates the compromised plugin. 7. The plugin may abuse its granted capabilities or intercept integration operations and data handled t ...[truncated 1028 chars]
Remediation
## Remediation Suggestions 1. Pin installation to an immutable, security-reviewed plugin version rather than a mutable package identifier. 2. Publish the plugin source code and dependency lockfile so its effective behavior and transitive dependencies can be audited. 3. Provide a trusted cryptographic checksum or signed release manifest and verify it before installation. 4. Enforce publisher identity and package-signature verification through the plugin registry. 5. Document the exact registry, publisher, version, and expected artifact digest. 6. Restrict the plugin to the minimum permissions required for WhatsApp operations. 7. Separate read and write capabilities, and preserve explicit user confirmation for every message send or other state-changing operation. 8. Require explicit user approval before installing the plugin, changing the tool allowlist, or restarting the gateway. 9. Monitor plugin releases and revoke compromised versions through an allowlist or denylist mechanism.
Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • 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
Findings (2)

Natural-Language Policy Violations

Medium
Confidence
88% confidence
Finding
The example sets `"language_code": "en"` for template messaging, which can normalize English as the default language without any stated user opt-in or locale justification. Since policy violations can appear in natural-language-adjacent config values and examples, this may encourage agents to force a specific language rather than respecting user preference.

Vague Triggers

Low
Confidence
83% confidence
Finding
The manifest description says to use the skill whenever users want to send messages, manage templates, or automate customer communication on WhatsApp, but it does not define tighter trigger boundaries or exclusion cases. In a manifest file, this broad phrasing can overlap with many ordinary WhatsApp-related requests and may cause unintended invocation without clearer scope constraints.

Static analysis

No suspicious patterns detected.