T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:61
- Finding
- Unpinned Third-Party Dependency Installation## Vulnerability Details **File Location**: `SKILL.md`, line 61 **Vulnerability Type**: Unpinned third-party dependency **Risk Level**: Medium ### Vulnerable Code Snippet ```markdown - `openpyxl` installed: `pip install openpyxl` ``` ### Technical Analysis The prerequisite directs users to install `openpyxl` without specifying an approved version, dependency lockfile, package hash, or trusted package index. Consequently, the installed package and its transitive dependencies may change after the skill has been reviewed. This is a software supply-chain weakness. If the package index, a maintainer account, a dependency, or the package resolution environment is compromised, following this instruction could install attacker-controlled code. An unintended package index configured through pip settings or environment variables could also supply an unauthorized distribution. The project contains only `SKILL.md`; the referenced pipeline is not included in the audited artifact. Therefore, the pipeline's imports, dependency handling, and runtime controls could not be verified. ### Attack Path 1. A user follows the documented prerequisite and runs `pip install openpyxl`. 2. pip resolves the package from the user's configured index without enforcing an audited version or cryptographic hash. 3. A compromised release, transitive dependency, package index, or resolution configuration supplies malicious code. 4. The package is installed or subsequently imported by the financial-analysis pipeline. 5. Malicious code executes with the privileges of the user running pip or the pipeline. 6. The code may access resources available to that process, potentially including QBO credentials, downloaded accounting data, generated reports, and writable local files. This exploitation path is conditional upon compromise or manipulation of the dependency supply chain; no malicious dependency content was present in the audited artifact. ### Impact Assessment Successful exploitation wou ...[truncated 675 chars]
- Remediation
- ## Remediation Suggestions 1. Pin `openpyxl` and every transitive dependency to versions that have been reviewed and tested. 2. Store dependencies in a committed lockfile or fully pinned requirements file. 3. Record and enforce cryptographic hashes using pip's `--require-hashes` option. 4. Explicitly use an approved package index rather than relying on ambient pip configuration. 5. Install dependencies in an isolated virtual environment under a non-privileged account. 6. Add automated dependency vulnerability and integrity scanning to the release process. 7. Document a reproducible installation procedure, for example: ```bash python3 -m venv .venv . .venv/bin/activate python3 -m pip install --index-url https://pypi.org/simple \ --require-hashes -r requirements.txt ``` The corresponding `requirements.txt` should contain exact versions and reviewed SHA-256 hashes for all resolved packages.
