Back to skill

Security audit

Voice Assistant

Security checks across malware telemetry and agentic risk

Overview

This looks like a legitimate voice assistant, but it handles sensitive live audio and chat content with under-disclosed permissions and weak local access controls.

Review before installing. Use it only with provider accounts and an OpenClaw gateway approved for the conversations you plan to have, avoid sensitive speech unless those services are acceptable, run the server only on a trusted machine/network, and prefer fixing the metadata, missing .env.example, privacy notice, WebSocket/origin controls, and transcript rendering before broad use.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (7)

Lp3

Medium
Category
MCP Least Privilege
Confidence
95% confidence
Finding
The skill documentation indicates use of environment variables for API keys and active network communication with third-party STT/TTS services and the OpenClaw gateway, but the metadata declares no corresponding permissions. This creates a transparency and consent problem: users and tooling cannot accurately assess what sensitive resources the skill needs before installation or execution.

Missing User Warnings

Medium
Confidence
97% confidence
Finding
This skill captures microphone audio, transcribes speech, sends transcript content to third-party STT/TTS providers, and forwards prompts to the OpenClaw gateway, but it does not present a prominent user warning about that data flow. Users may unknowingly expose sensitive spoken content, background conversations, or regulated data to external processors, making this especially risky for a real-time voice assistant.

Missing User Warnings

Medium
Confidence
88% confidence
Finding
This server forwards user-derived voice content to third-party STT, TTS, and gateway services, but this file contains no user-facing notice, consent flow, or privacy gate before transmission. In a voice assistant context, transcripts may contain sensitive personal or business information, so silent external forwarding creates a real privacy and compliance risk even if it is part of intended functionality.

Missing User Warnings

Medium
Confidence
94% confidence
Finding
The page captures microphone audio and immediately streams raw PCM to a backend WebSocket, but the UI only says 'Click the mic to start' and 'Listening...' without clearly disclosing that voice data is being transmitted off-device for processing. In a voice-assistant skill, users may expect recording, but not necessarily continuous backend streaming to third-party STT/TTS services, creating a meaningful privacy and consent risk if sensitive speech is captured unintentionally.

External Transmission

Medium
Category
Data Exfiltration
Content
class ElevenLabsSTT:
    """STT via ElevenLabs Scribe API (REST-based, non-streaming)."""

    API_URL = "https://api.elevenlabs.io/v1/speech-to-text"

    def __init__(self):
        self._audio_buffer = bytearray()
Confidence
95% confidence
Finding
https://api.elevenlabs.io/

External Transmission

Medium
Category
Data Exfiltration
Content
await self._resolve_voice_id()

        url = (
            f"https://api.elevenlabs.io/v1/text-to-speech/{self._voice_id}/stream"
            f"?output_format=pcm_16000"
        )
        try:
Confidence
96% confidence
Finding
https://api.elevenlabs.io/

External Transmission

Medium
Category
Data Exfiltration
Content
async def synthesize_stream(self, text: str) -> AsyncGenerator[bytes, None]:
        """Stream audio bytes from Deepgram Aura for a given text chunk."""
        url = f"https://api.deepgram.com/v1/speak?model={TTS_VOICE_DG}&encoding=linear16&sample_rate={SAMPLE_RATE}"
        try:
            async with httpx.AsyncClient(timeout=30.0) as client:
                async with client.stream(
Confidence
95% confidence
Finding
https://api.deepgram.com/

VirusTotal

64/64 vendors flagged this skill as clean.

View on VirusTotal

Static analysis

No suspicious patterns detected.