Trust Assessment
audio-transcriber 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 12 findings: 4 critical, 4 high, 3 medium, and 1 low severity. Key findings include Persistence / self-modification instructions, Arbitrary command execution, Dangerous call: subprocess.run().
The analysis covered 4 layers: Manifest Analysis, Static Code Analysis, Dependency Graph, LLM Behavioral Safety. The Manifest Analysis layer scored lowest at 0/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 Findings12
| Severity | Finding | Layer | Location | |
|---|---|---|---|---|
| CRITICAL | Persistence / self-modification instructions Shell RC file modification for persistence Remove any persistence mechanisms. Skills should not modify system startup configurations, crontabs, LaunchAgents, systemd services, or shell profiles. | Manifest | skills/snail3d/voice-devotional/temp-transcriber/audio-transcriber/SKILL.md:52 | |
| CRITICAL | Persistence / self-modification instructions Shell RC file modification for persistence Remove any persistence mechanisms. Skills should not modify system startup configurations, crontabs, LaunchAgents, systemd services, or shell profiles. | Manifest | skills/snail3d/voice-devotional/temp-transcriber/audio-transcriber/SKILL.md:55 | |
| 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/snail3d/voice-devotional/temp-transcriber/audio-transcriber/scripts/transcribe.py:37 | |
| 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/snail3d/voice-devotional/temp-transcriber/audio-transcriber/scripts/transcribe.py:54 | |
| HIGH | Dangerous call: subprocess.run() Call to 'subprocess.run()' detected in function 'check_dependencies'. This can execute arbitrary code. Avoid using dangerous functions like exec/eval/os.system. Use safer alternatives. | Static | skills/snail3d/voice-devotional/temp-transcriber/audio-transcriber/scripts/transcribe.py:37 | |
| HIGH | Dangerous call: subprocess.run() Call to 'subprocess.run()' detected in function 'convert_to_wav_if_needed'. This can execute arbitrary code. Avoid using dangerous functions like exec/eval/os.system. Use safer alternatives. | Static | skills/snail3d/voice-devotional/temp-transcriber/audio-transcriber/scripts/transcribe.py:54 | |
| HIGH | Potential data exfiltration: file read + network send Function 'transcribe' reads files and sends data over the network. This may indicate data exfiltration. Review this function to ensure file contents are not being sent to external servers. | Static | skills/snail3d/voice-devotional/temp-transcriber/audio-transcriber/scripts/transcribe.py:78 | |
| HIGH | Arbitrary file read and exfiltration to external API The `scripts/transcribe.py` script accepts an arbitrary file path as a command-line argument (`args.audio_file`). It then opens this file in binary read mode (`"rb"`) and sends its entire contents as part of a `requests.post` request to the Groq API. An attacker could craft an input to the LLM that causes the skill to read and exfiltrate sensitive files (e.g., `/etc/passwd`, `/proc/self/environ`, API keys, configuration files) to Groq's servers. While Groq is a legitimate service, sending arbitrary file contents without explicit user consent constitutes data exfiltration. Implement strict validation of the input `audio_file` path to ensure it points to a legitimate audio file within an expected directory, or use a temporary file upload mechanism that doesn't expose the full filesystem. Consider using a library that can identify file types more robustly than just extension checking. If the skill is intended to only process user-uploaded audio, ensure the file is handled within a secure sandbox or temporary storage, not directly from an arbitrary path provided by the LLM. | LLM | scripts/transcribe.py:86 | |
| MEDIUM | Suspicious import: requests Import of 'requests' detected. This module provides network or low-level system access. Verify this import is necessary. Network and system modules in skill code may indicate data exfiltration. | Static | skills/snail3d/voice-devotional/temp-transcriber/audio-transcriber/scripts/transcribe.py:20 | |
| MEDIUM | Persistence mechanism: Shell RC file modification Detected Shell RC file modification pattern. Persistence mechanisms allow malware to survive system restarts. Review this persistence pattern. Skills should not modify system startup configuration. | Static | skills/snail3d/voice-devotional/temp-transcriber/audio-transcriber/SKILL.md:52 | |
| MEDIUM | Persistence mechanism: Shell RC file modification Detected Shell RC file modification pattern. Persistence mechanisms allow malware to survive system restarts. Review this persistence pattern. Skills should not modify system startup configuration. | Static | skills/snail3d/voice-devotional/temp-transcriber/audio-transcriber/SKILL.md:55 | |
| LOW | Potential command injection via `ffmpeg` filename parsing The `convert_to_wav_if_needed` function executes `ffmpeg` using `subprocess.run` with the `input_path` derived from user input (`args.audio_file`). While `subprocess.run` is used with a list of arguments (which generally prevents shell injection), if `ffmpeg` itself has vulnerabilities where a specially crafted filename (e.g., containing specific characters or sequences) could be interpreted as a command-line option or trigger arbitrary code execution within `ffmpeg`, it could lead to command injection. This is a less direct risk than shell injection but still a consideration when processing untrusted file paths with external binaries. Sanitize or validate the `input_path` more rigorously to ensure it only contains safe characters and does not attempt to exploit `ffmpeg`'s parsing. Consider using a temporary, securely generated filename for `ffmpeg`'s input if the original filename is not strictly necessary for `ffmpeg`'s operation. | LLM | scripts/transcribe.py:54 |
Scan History
Embed Code
[](https://skillshield.io/report/37bae1aea9c2c30b)
Powered by SkillShield