Ae1
- Category
- analysis-evasion
- Confidence
- 100% confidence
- Finding
Referenced artifact was not completely inspected
- Content
md - Never store API keys in `SKILL.md`, examples, references, or memory/state files.
Security audit
Security checks for vulnerabilities and agentic risk
This phone-call skill is sensitive but coherent: it requires confirmation before calls and does not add hidden persistence or background jobs.
Install this only if you want an agent to manage CallMyCall phone calls. Check phone numbers, caller ID, call goals, recordings, transcripts, and any personal data before confirming; recordings and transcripts may contain sensitive information and may require consent or retention controls. Keep the API key in an environment variable or user config, and avoid optional webhooks or PII fields unless you have a clear need and trust the destination.
Referenced artifact was not completely inspected
- Never store API keys in `SKILL.md`, examples, references, or memory/state files.
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
2. `~/.openclaw/openclaw.json` at `skills.openclaw-phone.apiKey`
3. One-time user prompt for current task only
This skill does not write config files automatically. If you want persistence, add the key manually to `~/.openclaw/openclaw.json`.
The skill must not store API keys in skill source files or memory/state files.
The skill description uses broad trigger phrases like 'call someone,' 'plan a future call,' and 'fetch call results,' which overlap with ordinary conversational requests. In an agent environment, this can cause overbroad invocation and unintended activation for ambiguous user messages, leading the agent to initiate or prepare telephony actions the user did not clearly intend.
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
When the key is provided interactively:
- Use it for the current task only.
- Do not auto-write to config.
- If the user wants persistence, provide manual config instructions:
- Store at `skills.openclaw-phone.apiKey` in `~/.openclaw/openclaw.json`.
This markdown file instructs the skill to resolve an API key from CALLMYCALL_API_KEY and a local config file, which is sensitive credential access. The examples do not include any warning or disclosure to the user that the skill may read credentials from environment variables or local configuration.
The markdown describes a record option that enables recording calls, which can affect user privacy and create sensitive stored data. There is no accompanying warning or disclosure in the documentation about consent, privacy implications, or handling of recorded content.
The persona object includes highly sensitive fields such as personal_security_number and address, but the documentation provides no warning about sensitivity, minimization, or secure handling. For markdown files, omission of warnings around behaviors affecting privacy or user data is in scope.
The API reference allows specifying a webhook and webhook_events, which implies transmission of call-related data to a third-party endpoint. The documentation does not warn users that event payloads may contain sensitive call metadata or transcripts and leave the primary system boundary.
The transcript streaming endpoint provides live call transcripts, which may expose sensitive conversational content. The markdown does not include any warning about privacy, access control, or appropriate handling of streamed transcript data.
The recording endpoint returns a recording URL for a call, which can expose sensitive audio content. The documentation omits a warning that recordings may contain personal or confidential information and require careful access control.