Trust Assessment
telegram-offline-voice received a trust score of 10/100, placing it in the Untrusted category. This skill has significant security findings that require attention before use in production.
SkillShield's automated analysis identified 6 findings: 3 critical, 1 high, 0 medium, and 2 low severity. Key findings include Arbitrary command execution, Dangerous call: subprocess.run(), Remote code execution: curl/wget pipe to shell.
The analysis covered 4 layers: Manifest Analysis, Static Code Analysis, Dependency Graph, LLM Behavioral Safety. The Manifest Analysis layer scored lowest at 40/100, indicating areas for improvement.
Last analyzed on February 13, 2026 (commit 13146e6a). SkillShield performs automated 4-layer security analysis on AI skills and MCP servers.
Layer Breakdown
Behavioral Risk Signals
Security Findings6
| Severity | Finding | Layer | Location | |
|---|---|---|---|---|
| CRITICAL | Arbitrary command execution Python shell execution (os.system, subprocess) Review all shell execution calls. Ensure commands are static (not built from user input), use absolute paths, and are strictly necessary. Prefer library APIs over shell commands. | Manifest | skills/sanwecn/telegram-offline-voice/scripts/voice_gen.py:73 | |
| CRITICAL | Arbitrary command execution Remote code download piped to interpreter Review all shell execution calls. Ensure commands are static (not built from user input), use absolute paths, and are strictly necessary. Prefer library APIs over shell commands. | Manifest | skills/sanwecn/telegram-offline-voice/SKILL.md:31 | |
| CRITICAL | Remote code execution: curl/wget pipe to shell Detected a pattern that downloads and immediately executes remote code. This is a primary malware delivery vector. Never pipe curl/wget output directly to a shell interpreter. | Static | skills/sanwecn/telegram-offline-voice/SKILL.md:31 | |
| HIGH | Dangerous call: subprocess.run() Call to 'subprocess.run()' detected in function 'convert_to_ogg'. This can execute arbitrary code. Avoid using dangerous functions like exec/eval/os.system. Use safer alternatives. | Static | skills/sanwecn/telegram-offline-voice/scripts/voice_gen.py:73 | |
| LOW | Unpinned Python Dependencies The `scripts/voice_gen.py` file specifies Python dependencies (`edge-tts`, `aiofiles`) without pinning them to specific versions. This can lead to supply chain risks if a malicious version of a dependency is published and automatically installed, or if future updates introduce breaking changes or vulnerabilities. It's recommended to pin dependencies to exact versions. Pin Python dependencies to specific versions (e.g., `edge-tts==X.Y.Z`, `aiofiles==A.B.C`) in the `dependencies` list to ensure reproducible and secure installations. Consider using a `uv.lock` file or `requirements.txt` with exact versions. | LLM | scripts/voice_gen.py:4 | |
| LOW | TTS Engine Prompt Injection (SSML) The `clean_text` function in `scripts/voice_gen.py` sanitizes input text by removing Markdown symbols and URLs, but it does not filter out Speech Synthesis Markup Language (SSML) tags (e.g., `<speak>`, `<prosody>`). This allows a malicious user to inject SSML directly into the `--text` argument, potentially manipulating the voice synthesis behavior (e.g., rate, pitch, volume, pronunciation) of the `edge-tts` engine beyond the skill's intended control. While not a direct system compromise, it can lead to unintended or abusive audio output. Enhance the `clean_text` function to explicitly filter or escape SSML-specific characters like `<` and `>` if direct SSML injection is not an intended feature. Alternatively, use a library that safely escapes text before passing it to the TTS engine, or configure `edge-tts` to interpret input as plain text only. | LLM | scripts/voice_gen.py:14 |
Scan History
Embed Code
[](https://skillshield.io/report/9f99f5ed8858be23)
Powered by SkillShield