Back to skill

Security audit

iResponder

Security checks across malware telemetry and agentic risk

Overview

This iMessage auto-replier mostly matches its stated purpose, but it needs review because it can read private texts, send them to AI services, text people automatically, reuse other tool API keys, and exposes an unsafe Telegram command path.

Install only if you are comfortable granting Full Disk Access and Messages automation to a tool that can read message history, send it to an AI provider, and send replies on your behalf. Use a dedicated API key for this skill, restrict the watch list, set nonzero delays, daily caps, time windows, and narrow keywords, and avoid untrusted Telegram/natural-language management input until the execSync command construction is fixed. Do not use it for sensitive conversations unless you accept the plaintext logging and off-device AI processing.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (25)

Lp3

Medium
Category
MCP Least Privilege
Confidence
93% confidence
Finding
The skill clearly requires shell execution and access to environment/configured secrets, yet it declares no permissions. This creates a trust and review gap: operators may approve or invoke the skill without understanding that it can run commands, read local config, tail logs, and access API keys.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding
The documented behavior extends beyond simple iMessage auto-replies into remote Telegram administration, watcher restart/process control, log access, statistics reporting, and direct API-key-dependent testing. That scope expansion materially changes the risk profile because it enables remote operational control and broader data exposure not captured by the declared description.

Description-Behavior Mismatch

Medium
Confidence
88% confidence
Finding
Adding Telegram-based remote management expands the trust boundary from local message automation to remote command execution and administration. Users expecting only local auto-response may unknowingly expose contact data, status information, and administrative controls through another messaging platform.

Description-Behavior Mismatch

Medium
Confidence
86% confidence
Finding
Documented restart/background process management gives the skill operational control over long-running processes, which is more privileged than simple settings management. Hidden lifecycle control increases the chance of misuse, persistence, and unnoticed execution in the background.

Description-Behavior Mismatch

Medium
Confidence
85% confidence
Finding
The file explicitly implements a Telegram command surface even though the skill metadata describes iMessage/SMS auto-response functionality. Adding an undocumented remote-control channel expands the attack surface and changes the trust model, because a Telegram-integrated operator could manage contacts, prompts, and watcher state through an interface users may not expect or have consented to.

Context-Inappropriate Capability

High
Confidence
98% confidence
Finding
The code reads ~/.clawdbot/clawdbot.json and pulls API keys from other skills ('openai-whisper-api' or 'openai-image-gen') when OPENAI_API_KEY is absent. This is a cross-skill credential boundary violation: it reuses unrelated secrets without explicit consent, which can leak or misuse credentials and bypass least-privilege expectations.

Context-Inappropriate Capability

Medium
Confidence
96% confidence
Finding
The script retrieves an Anthropic API key from ~/.clawdbot/clawdbot.json, which is an unrelated local application's configuration file. This violates credential-boundary expectations and can cause this skill to silently reuse secrets the user did not intend to grant, increasing the risk of unauthorized external API use and data disclosure.

Context-Inappropriate Capability

Medium
Confidence
92% confidence
Finding
The watcher reads API keys from unrelated global Clawdbot skill configuration entries, which exceeds least-privilege expectations for an iMessage auto-responder. This creates credential scope creep: the skill can silently reuse secrets provisioned for other skills, increasing the blast radius if the watcher is modified, compromised, or misconfigured.

Context-Inappropriate Capability

Medium
Confidence
97% confidence
Finding
The script invokes curl to send message-derived content to the OpenAI API, which is an external network transmission channel. In the context of an iMessage/SMS watcher, this is sensitive because private conversation content is being exported off-device, and the manifest description does not clearly warn about third-party data transfer.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The README promotes automatic monitoring of iMessage/SMS and AI-generated replies, but the early feature description does not clearly warn that recent conversation history may be sent to OpenAI for processing. Because this skill handles highly sensitive personal communications, users may enable it without understanding that private message content could leave the local device and be transmitted to a third-party AI provider.

Vague Triggers

Medium
Confidence
84% confidence
Finding
Broad natural-language activation phrases can cause the agent to treat ordinary conversation as commands, especially for actions like status checks, history access, or restart. In a messaging-management skill, accidental invocation can leak message history or change operational state without sufficiently explicit intent.

Vague Triggers

Medium
Confidence
90% confidence
Finding
The pattern-matching rules are overly generic and overlap with common phrasing, increasing the risk of unintended command execution. Because this skill can modify contacts, disable protections, view history, and restart services, ambiguous language materially raises operational and privacy risk.

Missing User Warnings

High
Confidence
96% confidence
Finding
The skill states that AI sees recent conversation history and the latest incoming message, but it does not prominently and clearly warn that this content is transmitted to an external AI provider. That omission can expose sensitive SMS/iMessage content, contact relationships, and personal context without informed consent.

Vague Triggers

Medium
Confidence
90% confidence
Finding
The keyword list includes very broad terms like "help," "urgent," and "emergency," which can easily appear in ordinary conversation and unintentionally trigger the auto-responder. In the context of an iMessage/SMS auto-reply system, this can cause unsolicited AI-generated responses, privacy leakage from using conversation context, and excessive or inappropriate engagement with contacts.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
In test mode, the contact name/identifier, prompt, and provided test message are assembled into a prompt and sent to OpenAI. Because this skill handles private iMessage/SMS contexts, transmitting message content to a third-party API without a clear disclosure and consent step at the moment of transmission creates a privacy and data-handling risk.

Missing User Warnings

Medium
Confidence
93% confidence
Finding
The credential lookup logic silently accesses external-service credentials from another tool's config and then uses them for API calls, without a clear disclosure to the operator. This obscures both secret usage and external data flow, making it difficult for users to understand what credentials are being consumed and what services receive their data.

Missing User Warnings

High
Confidence
99% confidence
Finding
The script packages recent message history and the latest incoming message into a prompt and sends it to Anthropic without any runtime notice, consent flow, redaction, or per-contact opt-in. Because this skill operates on private iMessage/SMS content, the context makes the issue especially dangerous: highly sensitive personal communications may be transmitted off-device to a third party automatically.

Missing User Warnings

High
Confidence
98% confidence
Finding
The script automatically sends generated iMessage replies via imsg send with no confirmation step, approval queue, or visible safety interlock. In an auto-responder for real messaging accounts, this can cause unauthorized or embarrassing communications, social engineering amplification, and policy/relationship harm if the model responds incorrectly or to the wrong context.

Missing User Warnings

High
Confidence
99% confidence
Finding
The code packages recent message history and the latest incoming message into a prompt and sends it to OpenAI without any runtime warning, consent check, or per-contact confirmation. Because the skill monitors iMessage/SMS conversations, this can expose highly sensitive personal or business communications to an external AI provider without transparent user awareness at the moment of transfer.

Missing User Warnings

High
Confidence
95% confidence
Finding
The script sends iMessages automatically once a generated response is produced, with no user-facing approval step, preview, or confirmation. In an auto-responder context this can cause unintended communications, reputational harm, accidental commitments, or escalation if the model generates incorrect or inappropriate replies.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The script pulls API credentials from environment variables and fallback config files without any user-facing disclosure in this code path. While secret loading itself is common, doing so silently in a messaging watcher increases the risk that users do not realize the skill is authorized to use external paid services and transmit data under those credentials.

Ssd 3

High
Confidence
99% confidence
Finding
Recent chat history and the latest message are embedded in a plain-language prompt and forwarded to an external AI service. This is dangerous because messages may contain personal data, secrets, contact details, or regulated content, and the forwarding is automatic rather than narrowly scoped or minimized.

External Transmission

Medium
Category
Data Exfiltration
Content
return new Promise((resolve, reject) => {
    const proc = spawn('curl', [
      '-s',
      'https://api.openai.com/v1/chat/completions',
      '-H', 'Content-Type: application/json',
      '-H', `Authorization: Bearer ${apiKey}`,
      '-d', payload
Confidence
88% confidence
Finding
https://api.openai.com/

External Transmission

Medium
Category
Data Exfiltration
Content
return new Promise((resolve, reject) => {
    const proc = spawn('curl', [
      '-s',
      'https://api.anthropic.com/v1/messages',
      '-H', 'Content-Type: application/json',
      '-H', `x-api-key: ${apiKey}`,
      '-H', 'anthropic-version: 2023-06-01',
Confidence
93% confidence
Finding
https://api.anthropic.com/

External Transmission

Medium
Category
Data Exfiltration
Content
return new Promise((resolve, reject) => {
    const proc = spawn('curl', [
      '-s',
      'https://api.openai.com/v1/chat/completions',
      '-H', 'Content-Type: application/json',
      '-H', `Authorization: Bearer ${apiKey}`,
      '-d', payload
Confidence
88% confidence
Finding
https://api.openai.com/

VirusTotal

66/66 vendors flagged this skill as clean.

View on VirusTotal

Static analysis

Detected: suspicious.dangerous_exec, suspicious.exposed_secret_literal

Shell command execution detected (child_process).

Critical
Code
suspicious.dangerous_exec
Location
scripts/telegram-handler.js:103

Shell command execution detected (child_process).

Critical
Code
suspicious.dangerous_exec
Location
scripts/watcher-old.js:65

Shell command execution detected (child_process).

Critical
Code
suspicious.dangerous_exec
Location
scripts/watcher.js:81

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
scripts/telegram-handler.js:244

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
scripts/watcher-old.js:115