T08 · Insecure Dependencies
- Location
SKILL.md:145- Finding
Unpinned Third-Party Package Installation Without Integrity Verification
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 145, 251, and 305
Vulnerability Type: Unpinned and unverified dependency installation
Risk Level: MediumVulnerable Code
The same unsafe installation command appears at lines 145 and 305:
bash pip install pdfplumberThe dependency table repeats it at line 251:
markdown | pdfplumber | Python library | Required | `pip install pdfplumber` |Technical Analysis
The skill permits command execution and directs the agent to install
pdfplumberfrom the active Python package index without specifying an audited version, validating package hashes, using a lockfile, or restricting resolution to an explicitly trusted index.Consequently, the package and its transitive dependencies are mutable after the skill has been reviewed. The installed artifacts can also be influenced by the environment's pip configuration, including configured index URLs and extra indexes. This creates a supply-chain risk if a package release, transitive dependency, or configured package source is compromised.
The audit found no evidence that
pdfplumberitself is malicious. The vulnerability is the unsafe dependency acquisition procedure.Attack Path
- An agent loads the skill and receives permission to use its execution tool.
- The documented setup workflow causes the agent or user to run
pip install pdfplumber. - Pip resolves the latest compatible package and transitive dependencies using the environment's configured indexes.
- An attacker compromises a resolved release, a transitive dependency, or a configured package source.
- Pip installs the attacker-controlled artifact.
- Malicious package installation or import-time code executes with the privileges of the account running the agent.
- The resulting access is limited by that account and its execution environment, but may include files, credentials, and network resources available to the process.
Impact Assessment
Successf ...[truncated 602 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin
pdfplumberand every transitive dependency to versions that have been reviewed and tested. - Generate a lockfile or hashed requirements file and require hash verification during installation.
- Restrict package resolution to an approved repository rather than inheriting arbitrary pip index configuration.
- Install dependencies in a dedicated, non-privileged virtual environment or sandbox.
- Integrate dependency vulnerability scanning and periodically review pinned versions before controlled updates.
- Document the expected package source and integrity values in the project.
For example:
bash python -m venv .venv . .venv/bin/activate python -m pip install \ --index-url https://pypi.org/simple \ --require-hashes \ -r requirements.txtA corresponding
requirements.txtshould contain exact versions and SHA-256 hashes for the complete resolved dependency set. The occurrence at line 305 and the dependency-table instruction at line 251 should be updated consistently.- Pin
