Security Audit
dkyazzentwatwa/chatgpt-skills:audio-analyzer
github.com/dkyazzentwatwa/chatgpt-skillsTrust Assessment
dkyazzentwatwa/chatgpt-skills:audio-analyzer received a trust score of 37/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 7 findings: 0 critical, 2 high, 5 medium, and 0 low severity. Key findings include Unpinned Python dependency version, Arbitrary File Write via Unvalidated Paths, Arbitrary File Read via Unvalidated Input Path.
The analysis covered 4 layers: Manifest Analysis, Static Code Analysis, Dependency Graph, LLM Behavioral Safety. The Dependency Graph layer scored lowest at 65/100, indicating areas for improvement.
Last analyzed on February 24, 2026 (commit d4bad335). SkillShield performs automated 4-layer security analysis on AI skills and MCP servers.
Layer Breakdown
Behavioral Risk Signals
Security Findings7
| Severity | Finding | Layer | Location | |
|---|---|---|---|---|
| HIGH | Arbitrary File Write via Unvalidated Paths The `AudioAnalyzer` class directly uses user-provided file paths for saving analysis reports and visualizations (e.g., `save_report`, `plot_waveform`, `plot_spectrogram`) without any path validation or sanitization. This allows an attacker to specify arbitrary file paths, potentially leading to overwriting sensitive system files or other user data if the agent's execution environment grants broad filesystem write permissions. For example, providing `../../../../etc/passwd` as the `filepath` to `save_report` would attempt to overwrite the system's password file. Implement robust path validation and sanitization for all user-provided file paths. Restrict file operations to a designated, sandboxed directory. Prevent path traversal by resolving and checking canonical paths to ensure they remain within the intended working directory. For example, use `pathlib.Path(filepath).resolve()` and verify it starts with a trusted base directory. | LLM | scripts/audio_analyzer.py:348 | |
| HIGH | Arbitrary File Read via Unvalidated Input Path The `AudioAnalyzer` class initializes with a `filepath` that is directly used by `librosa.load` without any path validation or sanitization. While `librosa.load` expects audio files, an attacker could potentially provide a path to a sensitive non-audio file (e.g., `/etc/passwd`). Although `librosa` might fail to parse it as audio, the file's content could be read into memory. If any part of this content were subsequently exposed (e.g., in an error message, debug log, or a malformed report), it could lead to data exfiltration. This represents an excessive permission if the agent's execution environment allows reading arbitrary files. Implement robust path validation and sanitization for all user-provided input file paths. Restrict file operations to a designated, sandboxed directory. Prevent path traversal by resolving and checking canonical paths to ensure they remain within the intended working directory. Additionally, consider validating file types before attempting to load them with `librosa` to prevent accidental reading of non-audio files. | LLM | scripts/audio_analyzer.py:70 | |
| MEDIUM | Unpinned Python dependency version Requirement 'librosa>=0.10.0' is not pinned to an exact version. Pin Python dependencies with '==<exact version>'. | Dependencies | audio-analyzer/scripts/requirements.txt:1 | |
| MEDIUM | Unpinned Python dependency version Requirement 'soundfile>=0.12.0' is not pinned to an exact version. Pin Python dependencies with '==<exact version>'. | Dependencies | audio-analyzer/scripts/requirements.txt:2 | |
| MEDIUM | Unpinned Python dependency version Requirement 'matplotlib>=3.7.0' is not pinned to an exact version. Pin Python dependencies with '==<exact version>'. | Dependencies | audio-analyzer/scripts/requirements.txt:3 | |
| MEDIUM | Unpinned Python dependency version Requirement 'numpy>=1.24.0' is not pinned to an exact version. Pin Python dependencies with '==<exact version>'. | Dependencies | audio-analyzer/scripts/requirements.txt:4 | |
| MEDIUM | Unpinned Python dependency version Requirement 'scipy>=1.10.0' is not pinned to an exact version. Pin Python dependencies with '==<exact version>'. | Dependencies | audio-analyzer/scripts/requirements.txt:5 |
Scan History
Embed Code
[](https://skillshield.io/report/1e2dfd94ad6314e7)
Powered by SkillShield