T08 · Insecure Dependencies
- Location
SKILL.md:419- Finding
Unpinned Third-Party Dependency Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 419
Vulnerability Type: Unpinned third-party dependencies and insufficient supply-chain controls
Risk Level: MediumVulnerable Code
bash pip install openpyxl python-docx pdfplumberTechnical Analysis
The troubleshooting guidance instructs the agent or user to install three third-party Python packages without version constraints, cryptographic hashes, a lockfile, or an explicitly trusted package index.
Because dependency resolution is unconstrained, the packages and their transitive dependencies may change between installations. If a future release or dependency is compromised, the installation can introduce attacker-controlled code even though the Skill itself contains no malicious script. Package installation and subsequent imports execute with the privileges of the user or agent environment.
The audit found no evidence that these package names are currently malicious. The vulnerability is the absence of reproducible, integrity-verified dependency controls.
Attack Path
- A required Python library is unavailable in the execution environment.
- The agent or user follows the troubleshooting instruction in
SKILL.md. pipresolves the latest compatible versions and transitive dependencies from its configured indexes.- An attacker has compromised a package release, one of its dependencies, or the configured package source.
- The compromised component executes code during installation or when imported by the document-processing workflow.
- The payload operates with the permissions and network access of the invoking process.
This path requires compromise or manipulation of the dependency supply chain; no direct remote-payload mechanism is embedded in the reviewed project.
Impact Assessment
Successful exploitation could allow arbitrary code execution under the account running
pipor the document-processing workflow. Depending on that account's permission ...[truncated 347 chars]- Remediation
View remediation
Remediation Suggestions
- Replace the ad hoc installation command with a reviewed dependency manifest containing exact versions.
- Generate and verify cryptographic hashes for every direct and transitive dependency, then install with
pip --require-hashes. - Use a lock-generation process such as
pip-toolsand commit both the source requirements and generated lockfile. - Install dependencies in an isolated virtual environment or container under a non-privileged account.
- Restrict resolution to an approved package index and prevent unintended fallback to untrusted indexes.
- Add automated dependency vulnerability, provenance, and license scanning.
- Review and deliberately update locked versions rather than resolving mutable releases at runtime.
A hardened installation pattern is:
bash python -m pip install \ --require-hashes \ --only-binary=:all: \ --index-url https://pypi.org/simple \ -r requirements.lockThe referenced
requirements.lockshould pin all direct and transitive packages and include verified hashes.
