T08 · Insecure Dependencies
- Location
SKILL.md:123- Finding
Unpinned Third-Party Dependency Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:123andSKILL.md:238
Vulnerability Type: Unpinned and unverifiable dependency installation
Risk Level: MediumVulnerable Code
bash pip install psutilTechnical Analysis
The skill directs the agent to install
psutilwithout specifying an approved version, validating cryptographic hashes, using a lockfile, or identifying a trusted package index. Dependency resolution can therefore produce different artifacts over time.Installing a Python package may execute package-controlled build or installation logic. If the selected release or configured package index is compromised, malicious code could run under the privileges of the user operating the agent. The project contains no dependency integrity controls that would detect such a change.
The package name itself is not evidence that
psutilis malicious. The vulnerability is the absence of version and artifact integrity controls around an executable third-party dependency.Attack Path
- An agent loads the skill and follows its environment preparation instructions.
- The agent executes
pip install psutil. pipresolves the package dynamically from the environment's configured package index.- An attacker compromises the selected release, distribution artifact, account, index, or package-resolution path.
- The malicious artifact is downloaded and installed.
- Package-controlled installation or subsequently imported runtime code executes with the privileges of the agent's operating-system account.
Impact Assessment
Successful exploitation could allow arbitrary code execution within the Python installation context and with the permissions of the user running
pip. Depending on those permissions, an attacker could read or modify files accessible to that user, access environment variables and local credentials, alter the Python environment, or communicate with external syst ...[truncated 209 chars]- Remediation
View remediation
Remediation Suggestions
- Pin
psutilto a specifically reviewed version rather than allowing unrestricted resolution. - Store dependencies in a requirements file containing cryptographic hashes and install them with:
bash python3 -m pip install --require-hashes -r requirements.txt - Record hashes for every permitted distribution and update them only through a documented review process.
- Configure and document an approved HTTPS package index. Do not permit untrusted extra indexes or arbitrary user-controlled index URLs.
- Install the dependency in a dedicated virtual environment or other isolated runtime under a nonprivileged account.
- Run dependency and provenance scanning during release preparation.
- Ensure the pinned version receives timely security updates, with explicit review and hash regeneration for each upgrade.
- Pin
