lessac_offline_voice_system
The skill claims 'fully offline' with 'no data leaves your machine,' but actually uses edge-tts which transmits audio/text to Microsoft cloud servers - a significant doc-to-code mismatch indicating potential data exfiltration.
SKILL.md explicitly states 'Fully offline: No internet connection required' and 'Privacy-focused: All processing happens locally' and 'No data leaves your machine'. However, the implementation uses 'edge-tts' which is Microsoft's cloud TTS service that sends audio text to Microsoft servers.
SKILL.md:7 为什么得出这个结论
2/4 个维度触发发现 1 项声明之外的能力或越权行为。
提取到 5 个一般风险产物,需要结合上下文判断。
报告包含 0 步攻击链,另有 2 项高危或严重发现。
发现 3 项需要关注的依赖或供应链线索。
风险分是怎么被拉高的
SKILL.md claims 'fully offline' and 'no data leaves your machine' but uses edge-tts which sends data to Microsoft cloud
edge-tts package makes HTTPS requests to Microsoft servers for TTS generation
pip install without version pinning for faster-whisper, edge-tts, soundfile
subprocess.run with shell=True in voice_handler.py
最关键的证据
False claim of offline operation
SKILL.md explicitly states 'Fully offline: No internet connection required' and 'Privacy-focused: All processing happens locally' and 'No data leaves your machine'. However, the implementation uses 'edge-tts' which is Microsoft's cloud TTS service that sends audio text to Microsoft servers.
SKILL.md:7 Audio data transmitted to Microsoft cloud
The edge-tts package (installed in install.sh:85) makes HTTPS requests to Microsoft servers to generate TTS audio. This means user-provided text and any processed audio is sent to external servers, contradicting the skill's privacy claims.
scripts/install.sh:85 Unpinned Python package versions
Python packages are installed without version constraints: 'pip install faster-whisper edge-tts soundfile'. This allows dependency substitution attacks.
scripts/install.sh:85 subprocess with shell=True
The voice_handler.py uses subprocess.run with shell=True for ffmpeg execution. While ffmpeg commands are typically static, shell=True introduces potential command injection risk if audio filenames are user-controlled.
scripts/voice_handler.py:39 声明能力 vs 实际能力
install.sh:100 - Creates config files, copies scripts to $INSTALL_DIR SKILL.md claims offline, but edge-tts sends data to Microsoft servers voice_handler.py:39 - Uses subprocess for ffmpeg (documented CLI tool) 可疑产物与外联
https://huggingface.co/rhasspy/piper-voices/resolve/v1.0.0/en/en_US/lessac/high/en_US-lessac-high.onnx README.md:75
https://huggingface.co/rhasspy/piper-voices/resolve/v1.0.0/en/en_US/lessac/high/en_US-lessac-high.onnx.json README.md:76
https://huggingface.co/rhasspy/piper-voices SKILL.md:165
https://huggingface.co/rhasspy/piper-voices/resolve/v1.0.0/en/en_US/ryan/high/en_US-ryan-high.onnx references/voice_models.md:57
https://huggingface.co/rhasspy/piper-voices/resolve/v1.0.0/en/en_US/ryan/high/en_US-ryan-high.onnx.json references/voice_models.md:58
依赖与供应链
| 包名 | 版本 | 来源 | 漏洞 | 备注 |
|---|---|---|---|---|
| faster-whisper | * | pip | 否 | Version not pinned |
| edge-tts | * | pip | 否 | Version not pinned - Microsoft cloud service |
| soundfile | * | pip | 否 | Version not pinned |
文件构成
scripts/install.sh SKILL.md README.md references/voice_models.md scripts/voice_handler.py