T08 · Insecure Dependencies
- Location
SKILL.md:130- Finding
Unpinned Third-Party Dependency Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:130-134;README.md:10-13
Vulnerability Type: Unpinned dependency resolved from the default Python package index
Risk Level: MediumVulnerable Code Snippets:
SKILL.md:130-134markdown Requires Python 3.6+ and `psutil` library. Install with: ```bash pip install psutiltext `README.md:10-13` ```markdown 1. Install dependencies: ```bash pip install psutil ```Technical Analysis
The installation instructions retrieve
psutilwithout specifying an exact version or verifying an integrity hash. Consequently, the installed artifact is selected dynamically from the package index when the command is run.Python package installation can execute package-controlled build or installation logic. If the package publisher account, package index, dependency-resolution channel, or a future release is compromised, following these instructions could execute attacker-controlled code. No suspicious alternative package source or misspelled package name was found, so this is a supply-chain hardening deficiency rather than evidence that the current
psutilpackage is malicious.Attack Path
- An attacker compromises the package publisher, distribution infrastructure, or another dependency-resolution component.
- The attacker publishes or serves a malicious release under the expected package name.
- A user follows the documented
pip install psutilinstruction. - Pip resolves the mutable package version without validating a project-provided hash.
- Malicious build, installation, or runtime code executes with the privileges of the user performing the installation.
This attack requires compromise or manipulation of the external software supply chain; the audited repository itself does not contain a direct remote-payload mechanism.
Impact Assessment
Successful exploitation could permit arbitrary code execution unde ...[truncated 475 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin
psutilto a reviewed exact version instead of allowing unrestricted resolution:text psutil==<reviewed-version> - Generate and publish cryptographic hashes for approved artifacts, then require verification during installation:
bash python3 -m pip install --require-hashes -r requirements.txt - Maintain dependencies in a version-controlled lock or requirements file rather than embedding an unpinned installation command in documentation.
- Update dependencies through a controlled review process that includes vulnerability scanning, changelog review, and integrity-hash regeneration.
- Recommend installation inside a dedicated virtual environment and explicitly discourage installation with administrative privileges.
- Where appropriate, offer the operating system's signed package as an alternative while documenting its security and update model.
- Pin
