Scan Report
20 /100
ifly-voiceclone-tts
iFlytek Voice Clone tts — train a custom voice model from audio samples and synthesize speech with the cloned voice using iFlytek's Voice Clone API. Pure Python stdlib, no pip dependencies.
Legitimate iFlytek voice cloning skill with no malicious behavior; minor documentation gaps exist between declared allowed tools and actual network/filesystem usage, but all code is clearly tied to documented functionality.
Safe to install
Update SKILL.md to formally declare network and filesystem write permissions required for the iFlytek API workflow. Consider adding a small _meta.json with the capability map. No blocking security concerns identified.
Findings 4 items
| Severity | Finding | Location |
|---|---|---|
| Low | Network access not formally declared in allowed-tools Doc Mismatch | SKILL.md:1 |
| Low | Filesystem write not formally declared in allowed-tools Doc Mismatch | scripts/voiceclone.py:368 |
| Info | API credentials read from environment — expected and declared Credential Theft | scripts/voiceclone.py:312 |
| Info | Local audio file read — expected and declared in SKILL.md Sensitive Access | scripts/voiceclone.py:337 |
| Resource | Declared | Inferred | Status | Evidence |
|---|---|---|---|---|
| Filesystem | NONE | READ | ✓ Aligned | scripts/voiceclone.py:337 — reads local audio files for upload |
| Filesystem | NONE | WRITE | ✗ Violation | scripts/voiceclone.py:368 — open(output_path, 'wb') writes MP3 audio |
| Network | NONE | READ | ✗ Violation | scripts/voiceclone.py:50,57,62 — HTTP POSTs and WebSocket connections to iFlytek… |
| Shell | NONE | NONE | — | No shell execution detected |
| Environment | NONE | READ | ✓ Aligned | SKILL.md declares IFLY_APP_ID, IFLY_API_KEY, IFLY_API_SECRET env vars; code read… |
| Clipboard | NONE | NONE | — | No clipboard access |
| Browser | NONE | NONE | — | No browser access |
| Database | NONE | NONE | — | No database access |
7 findings
Medium External URL 外部 URL
https://console.xfyun.cn SKILL.md:12 Medium External URL 外部 URL
http://opentrain.xfyousheng.com/voice_train SKILL.md:128 Medium External URL 外部 URL
https://www.xfyun.cn/doc/spark/voiceclone.html SKILL.md:137 Medium External URL 外部 URL
https://console.xfyun.cn/workorder/commit SKILL.md:163 Medium External URL 外部 URL
https://console.xfyun.cn/services/oneSentenceV2 SKILL.md:207 Medium External URL 外部 URL
https://console.xfyun.cn/sale/buy?wareId=9188&packageId=9188001&serviceName=%E4%B8%80%E5%8F%A5%E8%AF%9D%E5%A4%8D%E5%88%B... SKILL.md:208 Medium External URL 外部 URL
http://avatar-hci.xfyousheng.com/aiauth/v1/token scripts/voiceclone.py:50 File Tree
2 files · 43.6 KB · 1082 lines Python 1f · 872L
Markdown 1f · 210L
├─
▾
scripts
│ └─
voiceclone.py
Python
└─
SKILL.md
Markdown
Dependencies 1 items
| Package | Version | Source | Known Vulns | Notes |
|---|---|---|---|---|
None (stdlib only) | N/A | Python standard library | No | No pip dependencies — all imports are from the Python standard library (argparse, base64, hashlib, hmac, json, os, ssl, struct, sys, threading, time, urllib.parse, urllib.request, datetime, wsgiref.handlers) |
Security Positives
✓ Pure Python stdlib only — no pip dependencies, no third-party packages, minimal supply chain risk
✓ All network targets are officially documented iFlytek endpoints; no rogue IP addresses or unknown domains
✓ No obfuscation techniques detected — code is readable, no base64-encoded payloads executed, no eval()
✓ No credential harvesting beyond what is required for iFlytek API authentication
✓ No sensitive path access (no ~/.ssh, ~/.aws, .env file reading)
✓ No persistence mechanisms (no cron, no startup hooks, no backdoors)
✓ No reverse shell, no C2 communication, no data exfiltration
✓ API keys are sent only to official iFlytek servers via standard HTTP/WebSocket protocols
✓ Well-structured code with clear separation of concerns (TrainClient, VoiceCloneSynthesizer, SimpleWebSocket)