T08 · Insecure Dependencies
- Location
SKILL.md:50- Finding
Unpinned Third-Party Dependencies Installed Without Integrity Verification
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 50-52
Vulnerability Type: Supply-chain exposure through mutable dependency resolution
Risk Level: MediumVulnerable Code:
bash Install: pip3 install python-docx olefile PillowTechnical Analysis
The documented installation command installs three third-party packages without version constraints, cryptographic hashes, a lockfile, or an explicitly trusted package index. Consequently, package selection depends on the mutable state of the Python package index configured in the user's environment at installation time.
This does not establish that
python-docx,olefile, orPilloware malicious. The vulnerability is that the installation procedure does not ensure users receive the same reviewed artifacts. If a package release, transitive dependency, package-index account, or configured index is compromised, pip may retrieve code that was not reviewed as part of this Skill.Python packages can execute code during installation or when imported. All four scripts import one or more of these dependencies, meaning a malicious resolved package could also execute when a user invokes the documented document-processing functionality.
Attack Path
- An attacker compromises a listed package, one of its transitive dependencies, or a package index trusted by the user's pip configuration.
- The attacker publishes or serves a malicious package version that satisfies the unconstrained dependency names.
- A user follows the documentation and runs:
bash pip3 install python-docx olefile Pillow - Pip resolves and installs the attacker-controlled artifact because no approved versions or hashes are enforced.
- Malicious code executes during installation or later when the affected dependency is imported by a toolkit script.
- The malicious code operates with the privileges of the user or automation account running pip or the scrip ...[truncated 689 chars]
- Remediation
View remediation
Remediation Suggestions
- Replace the unconstrained installation command with a reviewed, version-pinned dependency file.
- Generate a hash-locked requirements file containing all direct and transitive dependencies, for example with
pip-compile --generate-hashes. - Require hash verification during installation:
bash python3 -m pip install --require-hashes -r requirements.txt - Configure and document an explicitly trusted package index rather than relying on ambient pip configuration.
- Install dependencies inside an isolated virtual environment using a non-privileged account.
- Review dependency updates before changing pins and use automated dependency and vulnerability scanning.
- Preserve the reviewed lockfile and hashes in the project so installations are reproducible.
