T08 · Insecure Dependencies
- Location
SKILL.md:164- Finding
Unpinned Third-Party Python Dependency
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 164
Vulnerability Type: Insecure third-party dependency installation
Risk Level: MediumVulnerable Code Snippet:
markdown - **Python packages:** `pip install openpyxl`Technical Analysis
The skill instructs users to install
openpyxlwithout pinning a reviewed version or verifying the package artifact with cryptographic hashes. Consequently, dependency resolution is mutable: the version and artifact installed in the future may differ from those available when the skill was audited.Python package installation may execute package build or installation logic with the privileges of the invoking user. If the named package, its distribution infrastructure, or a transitive dependency is compromised, following this instruction could introduce unreviewed code into an environment that handles QBO General Ledger and vendor compliance data.
The audit found no evidence that
openpyxlis currently malicious. The issue is the unsafe, non-reproducible dependency installation practice.Attack Path
- An attacker compromises a future
openpyxlrelease, a dependency, or the relevant package-distribution channel. - A user follows the instruction in
SKILL.mdand runspip install openpyxl. pipresolves and downloads the mutable, compromised artifact.- Malicious installation or runtime code executes under the user's account.
- The code may access files, environment variables, QBO-related credentials, and accounting data available to that account.
Impact Assessment
Successful exploitation could permit arbitrary code execution with the privileges of the user performing the installation or running the pipeline. The accessible scope may include local financial workbooks, vendor records, W-9/TIN status files, QBO authentication material exposed to the process, and any other resources readable or writable by that user.
The referenced pip ...[truncated 234 chars]
- An attacker compromises a future
- Remediation
View remediation
Remediation Suggestions
- Pin
openpyxlto a specifically reviewed version rather than allowing unconstrained resolution. - Maintain dependencies in a lock file and require cryptographic hashes, such as by using
pip install --require-hashes -r requirements.txt. - Review and lock all transitive dependencies.
- Install dependencies inside a dedicated, least-privileged virtual environment.
- Use an approved package index or internally controlled mirror.
- Run dependency vulnerability and provenance checks in CI.
- Include the referenced pipeline in the package so its dependency use and sensitive-data handling can be audited.
- Pin
