T08 · Insecure Dependencies
Note
- Location
- SKILL.md:238
- Finding
- Unpinned Third-Party Package Installation Instruction## Vulnerability Details **File Location**: `SKILL.md:238` **Vulnerability Type**: Unpinned third-party dependencies **Risk Level**: Low ```python # Requires: pip install pytesseract pdf2image ``` ### Technical Analysis The documentation instructs users to install `pytesseract` and `pdf2image` without specifying reviewed versions or cryptographic hashes. Consequently, dependency resolution is not reproducible and may retrieve newer, incompatible, vulnerable, or compromised releases from the configured Python package index. This risk is compounded by `_meta.json` declaring an empty dependency list even though the scripts rely on external packages such as `pypdf`, `pdf2image`, `Pillow`, and `pdfplumber`. There is therefore no authoritative, version-controlled dependency manifest for validating the packages required by the Skill. No evidence was found that the named packages or this project are currently malicious. The issue is the unsafe and non-reproducible dependency installation practice. ### Attack Path 1. A user follows the OCR prerequisite in `SKILL.md`. 2. The user runs `pip install pytesseract pdf2image` without version or hash restrictions. 3. `pip` resolves packages and transitive dependencies from the user's configured package index. 4. If an upstream package, release, index, or dependency is compromised, malicious installation or runtime code is downloaded. 5. That code executes with the privileges and filesystem access of the user running `pip` or the PDF workflow. ### Impact Assessment Exploitation depends on compromise or unsafe substitution within the dependency supply chain. A malicious package could execute arbitrary code with the invoking user's privileges, access files available to that user, modify the Python environment, or affect PDFs and other data processed by the Skill. The Skill itself does not request elevated privileges, so the direct privilege scope is normally limited to the account perfor ...[truncated 22 chars]
- Remediation
- ## Remediation Suggestions 1. Add an authoritative dependency manifest containing every required runtime package. 2. Pin each dependency and relevant transitive dependency to a reviewed version. 3. Generate and commit a lock file with cryptographic hashes, using tooling such as `pip-tools`. 4. Require hash verification during installation, for example with `pip install --require-hashes -r requirements.txt`. 5. Document the expected official package index and warn against untrusted mirrors or additional indexes. 6. Keep `_meta.json` synchronized with the actual dependencies imported by the scripts. 7. Periodically scan pinned dependencies for known vulnerabilities and update them through a controlled review process. 8. Replace the unpinned inline installation command with a reference to the reviewed, hash-locked dependency file.
