T08 · Insecure Dependencies
- Location
SKILL.md:164- Finding
Unpinned Third-Party Dependency Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 164
Vulnerability Type: Unpinned dependency installation
Risk Level: MediumComplete Code Snippet:
markdown | PyYAML | Python package | Required | Run `pip install pyyaml` to parse schema definition files |Technical Analysis
The Skill directs users or agents to install
pyyamlwithout specifying an audited version or verifying package integrity. Consequently,pipresolves whichever release is current from the configured package index at installation time.This makes the resulting environment non-reproducible and exposes installation to supply-chain threats involving a compromised package release, package-index account, repository mirror, or local package-index configuration. No evidence establishes that the legitimate PyYAML package is malicious; the issue is the absence of version and integrity controls.
Attack Path
- An attacker compromises a dependency release, package publisher account, configured Python package index, or mirror.
- A user or agent follows the documented
pip install pyyamlinstruction. pipresolves and downloads the attacker-controlled artifact because no version or hash is enforced.- Malicious installation logic may run during package installation, or malicious runtime code may execute when the dependency is imported.
- The payload operates with the permissions of the account or agent environment performing the installation or import.
Impact Assessment
Successful exploitation could permit arbitrary code execution under the installing or importing process's privileges. Potential scope includes data and credentials accessible to that account, modification of writable project or user files, and abuse of network access available to the environment.
The impact is constrained by the process's operating-system permissions and sandboxing. The audited file does not request elevated privileges, and no privilege-escalation mechanism wa ...[truncated 13 chars]
- Remediation
View remediation
Remediation Suggestions
-
Pin PyYAML to a specifically reviewed version rather than resolving the latest release dynamically.
-
Place dependencies in a lock or requirements file containing cryptographic hashes, and install with hash verification, for example:
text PyYAML==<reviewed-version> --hash=sha256:<verified-artifact-hash>bash python3 -m pip install --require-hashes -r requirements.txt -
Generate and review lock-file updates through a controlled dependency-update process.
-
Explicitly configure an approved HTTPS package index rather than relying on an unknown environment-level index or mirror.
-
Install dependencies inside an isolated virtual environment or sandbox using a non-privileged account.
-
Scan pinned artifacts for known vulnerabilities and verify package provenance before approving upgrades.
-
Avoid executing installation commands automatically from untrusted input or with administrator/root privileges.
-
