T09 · Insecure Skill Coding Practices
- Location
SKILL.md:27- Finding
Unbounded Extraction of an Untrusted EPUB Archive into a Reused Directory
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This EPUB skill is mostly coherent, but it asks agents to run unsafe archive extraction and system-level Python package installation patterns that users should review before installing.
Install only if you are comfortable adapting the workflow to a safer setup: use a virtual environment or preinstalled packages, avoid `--break-system-packages`, extract each EPUB into a fresh temporary directory with archive validation and size limits, and choose unique output filenames to avoid overwriting prior work.
SKILL.md:27Unbounded Extraction of an Untrusted EPUB Archive into a Reused Directory
SKILL.md:284Unpinned Dependency Installation Bypasses System Python Protections
The skill instructs installing packages with pip install ... --break-system-packages, which weakens environment protections and can modify the system-wide Python environment unnecessarily for a document-processing task. In an agent setting, this increases risk of dependency tampering, environment corruption, and unintended side effects beyond the skill's scope.
The example writes extracted text directly to /mnt/user-data/outputs/book_full_text.txt without warning that an existing file may be overwritten. While low severity, silent file creation or overwrite can cause data loss or confusion in automated workflows where output paths are reused.
The cover extraction example copies a file to a fixed output path without noting that it may create or overwrite /mnt/user-data/outputs/cover.jpg. In isolation this is minor, but in repeated runs or shared workflows it can unexpectedly replace prior user data.
The repack workflow copies the generated EPUB to a fixed output filename without warning that an existing modified_book.epub may be replaced. This is a real but low-impact safety issue because it can destroy previous output artifacts or mislead users about which file is current.
No suspicious patterns detected.