Back to skill

Security audit

Claw To Talk: OpenClaw Voice Companion on iOS & Android

Security checks for vulnerabilities and agentic risk

Overview

The skill is coherent, but it should be reviewed because it asks users to expose an OpenClaw gateway through Tailscale, approve a mobile device, and enter sensitive tokens into an external app without enough safety guidance.

Install only if you trust the Claw To Talk app and your Tailscale tailnet membership. Use a unique gateway token for this app, verify the exact device ID before approval, restrict tailnet access where possible, avoid entering a broad ElevenLabs key unless needed, and know how to rotate tokens, revoke devices, and turn off Tailscale Serve when no longer needed.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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 (2)

T01 · Skill Instruction Hijacking

Warning
Location
skill.md:72
Finding
Forced External Promotion Through Persistent Skill Instruction## Vulnerability Details **File Location**: `skill.md:72` **Vulnerability Type**: `T01: Skill Instruction Hijacking` **Risk Level**: Medium **Vulnerable Code Snippet**: ```markdown **Always send users here for the latest screenshots and updates:** <https://clawtotalk.com/howto> ``` ### Technical Analysis The skill contains an unconditional instruction requiring the agent to direct users to an external, branded website. The word “Always” makes this a persistent response-generation rule rather than an optional reference selected according to the user's request. When the skill is loaded, this instruction can alter the agent's response behavior by requiring promotional output even when referring users to the website is unnecessary. Because the linked content is externally hosted and is not part of the audited package, its contents can also change independently after the skill has been reviewed. This finding concerns instruction hijacking through forced output. The audited file does not itself download or execute content from the linked website, so this is not classified as remote payload execution. ### Attack Path 1. The skill is loaded for a request concerning voice access, mobile clients, or Tailscale setup. 2. The agent processes the unconditional “Always send users here” instruction. 3. The agent includes the externally controlled URL regardless of whether the user requested external documentation. 4. The user follows the promoted link and is exposed to content that can be changed outside the audited skill package. ### Impact Assessment The instruction can influence the agent's generated responses within sessions where the skill is active and can cause unsolicited redirection to an external website. It does not, based on the audited content, obtain system privileges, execute local commands automatically, modify persistent memory, or establish operating-system persistence. The principal impact is loss of respons ...[truncated 68 chars]
Remediation
## Remediation Suggestions Replace the unconditional directive with a contextual and optional reference. For example: ```markdown If the user requests current screenshots or additional setup documentation, offer the following guide: https://clawtotalk.com/howto ``` Additional hardening measures include: - Do not require branded links in every response. - Clearly identify the destination as an external website. - Allow the agent to answer from local, audited instructions without forcing external navigation. - Review and validate linked documentation periodically. - Avoid representing external documentation as mandatory unless it is essential to completing the requested task.

T09 · Insecure Skill Coding Practices

Error
Location
skill.md:60
Finding
Sensitive Gateway and Third-Party API Credentials Entered Into an External Mobile Client## Vulnerability Details **File Location**: `skill.md:60-70` **Vulnerability Type**: `T09: Insecure Skill Coding Practices` **Risk Level**: High **Vulnerable Code Snippet**: ```markdown 5. **In the Claw To Talk app** Enter your Tailscale MagicDNS address (e.g. wss://your-machine.tailnet.ts.net) and the gateway token. 6. **Approve the device** Bash ``` openclaw devices list openclaw devices approve <device-id> ``` 7. **(Recommended) Add ElevenLabs key** in the app settings for much better voice quality. ``` ### Technical Analysis The instructions direct users to provide two sensitive credentials to an external mobile application: - An OpenClaw gateway authentication token. - An ElevenLabs API key. The file does not document how the application stores these credentials, whether operating-system secure storage is used, whether credentials are transmitted beyond the intended gateway or provider, or how users should rotate and revoke them. It also does not require short-lived or narrowly scoped credentials. Device approval further grants the selected mobile client authorized access to the OpenClaw environment. If the client, mobile device, credential storage, or distribution channel is compromised, an attacker may recover the gateway token or API key and operate with the permissions associated with those credentials. No direct credential-exfiltration implementation is present in the audited package. The vulnerability is the insecure credential-handling guidance and missing security controls around trust establishment with an external client. ### Attack Path 1. A user installs the referenced mobile application. 2. The user enters the OpenClaw gateway token into the application. 3. The user lists pending devices and approves the client device. 4. The user optionally enters an ElevenLabs API key into the same application. 5. A malicious, compromised, or insecurely implemented ...[truncated 1114 chars]
Remediation
## Remediation Suggestions - Use short-lived, revocable, and least-privilege gateway credentials created specifically for the mobile client. - Require mobile credentials to be stored in platform-provided secure storage, such as iOS Keychain or Android Keystore, and document that protection explicitly. - Never persist tokens or API keys in application logs, analytics events, crash reports, backups, or plaintext configuration files. - Prefer a server-side ElevenLabs integration so the provider API key is not distributed to a mobile client. - If direct mobile API access is unavoidable, use a restricted key or a backend-issued temporary credential rather than a full account API key. - Document token rotation, device revocation, and incident-response procedures. - Instruct users to review device identifiers before running the approval command and to revoke devices that are lost, replaced, or no longer used. - Explain the permissions granted by device approval and require explicit user confirmation before establishing trust. - Provide verifiable documentation covering credential transmission, storage, retention, and deletion.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • 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
Findings (1)

Missing User Warnings

Medium
Confidence
88% confidence
Finding
The skill instructs users to run `tailscale serve --bg --yes 18789` and approve devices, which exposes the OpenClaw gateway over the tailnet and grants device access without explaining the trust boundary, token handling, or approval risks. In a voice-companion setup this may be legitimate functionality, but omitting security warnings and verification steps can lead users to expose a sensitive local service to unintended tailnet members or authorize rogue devices.

Static analysis

No suspicious patterns detected.