T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:19
- Finding
- Unpinned Third-Party Runtime Dependency## Vulnerability Details **File Location**: `SKILL.md:19-23` **Vulnerability Type**: Unpinned dependency installation without integrity verification **Risk Level**: Medium ```bash ## Setup ```bash pip install openimageio ``` ``` ### Technical Analysis The documented installation procedure retrieves the currently available `openimageio` package and its transitive dependencies without specifying an exact version, trusted artifact hash, or dependency lockfile. The effective installed code can therefore change after this skill has been audited. Because Python packages may execute installation or imported runtime code with the invoking user's permissions, compromise of the upstream package, its distribution account, package index resolution, or a transitive dependency could introduce unreviewed code into the local environment. This also prevents reproducible installation and makes it difficult to verify dependency provenance. The exposure sweep script additionally imports Pillow, but the setup instructions do not pin or explicitly install a reviewed Pillow version. ### Attack Path 1. A user follows the setup documentation and runs `pip install openimageio`. 2. `pip` resolves whichever package and transitive dependency versions are available at that time. 3. An upstream package release, distribution account, dependency, or resolved artifact has been compromised or contains malicious installation/runtime code. 4. `pip` downloads and installs the affected artifact without checking a project-supplied cryptographic hash. 5. The malicious code executes during installation or when the installed component is invoked by the skill. This exploitation path depends on compromise or unsafe modification of an upstream dependency; the audited project itself does not retrieve a separate remote payload at runtime. ### Impact Assessment Malicious dependency code could execute with the privileges of the user performing the installat ...[truncated 476 chars]
- Remediation
- ## Remediation Suggestions 1. Create a reviewed dependency lockfile containing exact versions for OpenImageIO, Pillow, and all required transitive dependencies. 2. Record cryptographic hashes for every permitted distribution artifact and install with hash enforcement: ```bash python -m pip install --require-hashes -r requirements.txt ``` 3. Generate the lockfile for each supported Python version and platform because OpenImageIO commonly relies on platform-specific wheels. 4. Configure installation to use an explicitly trusted package index or an internally controlled artifact repository. 5. Verify downloaded artifacts before promoting them into the trusted repository. 6. Add automated dependency vulnerability and provenance scanning to the release process. 7. Document installation inside an isolated virtual environment under a non-privileged account. 8. Explicitly declare Pillow, which is imported by `scripts/exposure_sweep.py`, rather than relying on an undeclared environment dependency.
