Scan Report
20 /100
voice-agent
ElevenLabs voice cloning and TTS generation skill with optional Twilio outbound/inbound call automation
Legitimate ElevenLabs + Twilio voice/TTS skill with documented network behavior and API-based functionality; two minor gaps in capability declaration and dependency management, but no malicious behavior detected.
Safe to install
Add shell:WRITE to SKILL.md metadata, pin all pip/apt dependencies with exact versions, and create a requirements.txt file to eliminate supply-chain risk.
Findings 4 items
| Severity | Finding | Location |
|---|---|---|
| Medium | Shell execution not declared in capability metadata Priv Escalation | SKILL.md:1 |
| Low | Dependencies not pinned to specific versions Supply Chain | SKILL.md:266 |
| Low | Runtime dependency installation without version pinning Supply Chain | SKILL.md:497 |
| Info | Cron schedule documented but not declared as persistence Doc Mismatch | SKILL.md:557 |
| Resource | Declared | Inferred | Status | Evidence |
|---|---|---|---|---|
| Filesystem | READ+WRITE | READ+WRITE | ✓ Aligned | SKILL.md metadata required_paths read/write lists /workspace/voice/* and /worksp… |
| Network | READ | READ | ✓ Aligned | SKILL.md metadata network_behavior declares api.elevenlabs.io and api.twilio.com… |
| Shell | NONE | WRITE | ✓ Aligned | voice_generator.py:182 subprocess.run(ffmpeg), voice_generator.py:201 subprocess… |
| Environment | NONE | READ | ✓ Aligned | get_api_key() reads os.environ.get('ELEVENLABS_API_KEY') — environment access is… |
| Skill Invoke | READ | READ | ✓ Aligned | SKILL.md requires virtual-desktop skill for self-configuration phase |
13 findings
Medium External URL 外部 URL
https://elevenlabs.io SKILL.md:36 Medium External URL 外部 URL
https://api.elevenlabs.io SKILL.md:37 Medium External URL 外部 URL
https://api.twilio.com SKILL.md:38 Medium External URL 外部 URL
https://elevenlabs.io/app/sign-in SKILL.md:110 Medium External URL 外部 URL
https://api.elevenlabs.io/v1/user SKILL.md:270 Medium External URL 外部 URL
https://api.elevenlabs.io/v1/voices/add SKILL.md:313 Medium External URL 外部 URL
https://api.elevenlabs.io/v1/voices SKILL.md:332 Medium External URL 外部 URL
https://elevenlabs.io/app/home SKILL.md:391 Medium External URL 外部 URL
https://elevenlabs.io/app/settings/api-keys SKILL.md:423 Medium External URL 外部 URL
https://elevenlabs.io/app/voice-lab SKILL.md:448 Medium External URL 外部 URL
https://api.elevenlabs.io/v1/voices/$VOICE_ID SKILL.md:479 Medium External URL 外部 URL
https://api.elevenlabs.io/v1/text-to-speech/ voice_generator.py:118 Info Email 邮箱地址
[email protected] README.md:31 File Tree
5 files · 42.1 KB · 1320 lines Markdown 3f · 961L
Python 1f · 331L
JSON 1f · 28L
├─
agent_prompt.md
Markdown
├─
config.json
⚠
JSON
├─
README.md
Markdown
├─
SKILL.md
Markdown
└─
voice_generator.py
Python
Dependencies 4 items
| Package | Version | Source | Known Vulns | Notes |
|---|---|---|---|---|
elevenlabs | unpinned | pip | No | No version specifier in SKILL.md pip install command; create requirements.txt |
requests | unpinned | pip | No | Used as fallback HTTP library in tts_chunk(); no version pin |
twilio | unpinned | pip | No | Optional dependency for call functionality; not version-pinned |
ffmpeg | unpinned | apt | No | Runtime install via apt-get; used for audio concatenation |
Security Positives
✓ No credential exfiltration — ELEVENLABS_API_KEY is read and used only for ElevenLabs API calls, never transmitted elsewhere
✓ No data exfiltration — generated audio and call transcripts are written to local paths only
✓ No obfuscation — no base64, no eval(), no encoded payloads
✓ No sensitive path access — no reads of ~/.ssh, ~/.aws, .env outside the skill's declared paths
✓ No reverse shell, C2, or remote code execution vectors
✓ API calls are to legitimate, declared endpoints (api.elevenlabs.io, api.twilio.com)
✓ Network behavior is clearly documented in SKILL.md network_behavior section
✓ Subprocess usage is confined to standard media tools (ffmpeg, ffprobe) and package management
✓ File writes are scoped to the skill's declared workspace (/workspace/voice/) and learning files
✓ Cron jobs are documented with skill-owner intent, not external compromise