T08 · Insecure Dependencies
- Location
requirements.txt:1- Finding
Unpinned Third-Party Dependency Without Integrity Verification
- Content
View full analysis
=10.0.0 ``` The documented installation command in `README.md:11-12` and `SKILL.md:55-56` is: ```bash pip install -r requirements.txt ``` ### Technical Analysis The project specifies only a minimum Pillow version. Consequently, each installation may resolve to a different future release that was not available or reviewed when this audit was performed. The project also provides no lock file or cryptographic hashes with which pip can verify that the exact reviewed distribution is installed. This does not establish that Pillow is currently malicious. The weakness is that dependency resolution remains mutable and does not guarantee reproducible or integrity-verified installation. If the upstream package, distribution channel, maintainer account, or a future release were compromised, users following the documented installation process could receive unreviewed code. ### Attack Path 1. An attacker compromises a permitted future Pillow release, its publication account, or the package distribution channel. 2. The attacker publishes a release satisfying `pillow>=10.0.0`. 3. A user runs the documented `pip install -r requirements.txt` command. 4. pip resolves the mutable dependency constraint to the compromised release without checking it against a project-supplied artifact hash. 5. Malicious package installation or runtime code executes in the environment where the Skill is installed or invoked. This path is conditional on compromise of the upstream supply chain; no evidence of such a compromise was identified in the audited project. ### Impact Assessment Successful exploitation could execute code with the privileges of the account performing install ...[truncated 413 chars]- Remediation
View remediation
``` 2. Generate and commit a reproducible dependency lock file containing cryptographic hashes. 3. Install dependencies with hash enforcement, such as: ```bash python -m pip install --require-hashes -r requirements.txt ``` 4. Obtain packages only from approved package indexes over authenticated TLS. 5. Review release notes and security advisories before updating the pinned version. 6. Perform dependency updates through a controlled process that includes automated vulnerability scanning and tests. 7. Install and run the Skill in a least-privileged virtual environment or container rather than as an administrator or root user. ]]>
