T08 · Insecure Dependencies
- Location
install.sh:44- Finding
Unpinned Python Dependency Installed into the System-Managed Environment
- Content
View full analysis
Vulnerability Details
File Location:
install.sh:44-48
Vulnerability Type: Unpinned third-party dependency installation and bypass of system package protections
Risk Level: MediumVulnerable Code:
bash if python3 -m pip install python-docx --break-system-packages 2>/dev/null; then echo " ✅ python-docx installation completed" elif python3 -m pip install python-docx 2>/dev/null; then echo " ✅ python-docx installation completed" elseTechnical Analysis
The installation script downloads
python-docxwithout specifying an audited version or verifying an integrity hash. The effective dependency content may therefore change between installations as package releases change.The preferred installation command also passes
--break-system-packages. This option bypasses protections intended to prevent pip from modifying a Python environment managed by the operating system. Installing directly into that environment can replace or conflict with packages used by unrelated system applications.Related unpinned installation instructions also appear in
SKILL.md:17-23,SKILL.md:209-213,README.md:24-26, andskill.json:20-23.Attack Path
- A user executes
install.shto install the Skill. - The script asks pip to resolve the current
python-docxpackage without a version constraint or integrity hash. - If the dependency source or a newly published dependency artifact has been compromised, pip downloads the affected artifact.
- Package installation code runs with the privileges of the user executing the installer.
- Because the preferred command uses
--break-system-packages, the package is permitted to modify the system-managed Python environment. - Malicious dependency code can subsequently execute when
scripts/read_word.pyimports thedocxmodule.
This is a supply-chain exposure rather than evidence that the currently named package is m ...[truncated 610 chars]
- A user executes
- Remediation
View remediation
Remediation Suggestions
-
Pin
python-docxand its transitive dependencies to reviewed versions. -
Record cryptographic hashes in a requirements lock file and install with hash enforcement:
bash python3 -m venv .venv .venv/bin/python -m pip install --require-hashes -r requirements.txt -
Remove
--break-system-packagesand use a dedicated virtual environment so the Skill cannot alter the operating system's managed Python packages. -
Use a trusted, explicitly configured package index and retain dependency artifacts or a lock file for reproducible installations.
-
Apply the same pinned installation instructions consistently in
SKILL.md,README.md, andskill.json. -
Run dependency vulnerability and provenance checks before publishing each release.
-
