T08 · Insecure Dependencies
- Location
SKILL.md:337- Finding
Unpinned Third-Party Dependency Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 337
Vulnerability Type: Unpinned dependency resolved from a mutable package registry
Risk Level: MediumVulnerable Code Snippet:
markdown | PyYAML | Python library | Optional | `pip install pyyaml` (parse configuration files) |Technical Analysis
The documented installation command retrieves
PyYAMLwithout specifying a reviewed version or validating an integrity hash. Consequently, the package content installed by users may change over time despite the Skill itself remaining unchanged.Package installation can execute distribution build or installation logic with the privileges of the invoking user. If the package registry, maintainer account, release process, or dependency chain were compromised, following this instruction could introduce attacker-controlled code into the local environment. The project provides no lock file, hash-pinned requirements file, trusted-index restriction, or isolated installation procedure to mitigate this supply-chain risk.
The package name is not an apparent typosquat, and the dependency is optional. No evidence establishes that the currently published package is malicious; the vulnerability is the unsafe, non-reproducible dependency installation practice.
Attack Path
- An attacker compromises the relevant package publication channel, maintainer credentials, release pipeline, or a transitive build dependency.
- The attacker publishes a malicious release that satisfies the unrestricted
pip install pyyamlrequest. - A user or Agent follows the installation instruction in
SKILL.md. pipresolves and downloads the attacker-controlled release from the configured package index.- Malicious installation or runtime code executes in the Python environment with the privileges of the user running
pip. - The payload can access resources available to that account and may affect subsequent processes ...[truncated 754 chars]
- Remediation
View remediation
Remediation Suggestions
-
Pin
PyYAMLto a specific version that has been reviewed and tested rather than installing the latest available release. -
Provide a hash-locked requirements file and require integrity verification, for example:
text PyYAML==<reviewed-version> --hash=sha256:<verified-distribution-hash>Install it with:
bash python -m pip install --require-hashes -r requirements.txt -
Generate hashes separately for every supported platform and Python version, because wheel artifacts may differ.
-
Direct users to the official package index through an explicit trusted configuration and avoid unreviewed additional indexes.
-
Install the optional dependency inside a dedicated virtual environment using a non-privileged account. Do not recommend system-wide or administrator-level installation.
-
Add an update process requiring dependency review, vulnerability scanning, compatibility testing, and hash regeneration before changing the pinned version.
-
If YAML parsing is not needed for a given workflow, omit the optional dependency entirely to reduce the supply-chain attack surface.
-
