T08 · Insecure Dependencies
- Location
SKILL.md:341- Finding
Unpinned Third-Party Python Dependencies
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:341-345
Vulnerability Type:T08: Insecure Dependencies
Risk Level: MediumVulnerable Code Snippet:
markdown | pyyaml | Python library | Required | `pip install pyyaml` (YAML) | | xmltodict | Python library | Required | `pip install xmltodict` (XML) | | tomli_w | Python library | Required | `pip install tomli_w` (TOML writing) | | tomllib | Python library | Required | Built into Python 3.11+ (TOML reading) | | chardet | Python library | Optional | `pip install chardet` (encoding detection) |Technical Analysis
The Skill instructs users or agents to install
pyyaml,xmltodict,tomli_w, and optionallychardetwithout specifying reviewed versions, cryptographic hashes, a lockfile, or a trusted package index. Consequently, package resolution depends on the current contents of the configured Python package repositories.Python package installation can execute package-controlled build or installation logic. If an upstream release, package-maintainer account, configured package index, or dependency chain is compromised, a malicious package version could execute code during installation or when imported by the conversion workflow.
This finding does not establish that the named packages are currently malicious. The vulnerability is the mutable and insufficiently verified dependency installation process.
Attack Path
- An attacker compromises an upstream package release, maintainer account, dependency, or package index used by the environment.
- The user or agent follows the documented command, such as
pip install pyyaml, without a version or hash constraint. pipresolves the attacker-controlled or compromised package version.- Malicious build, installation, or runtime code executes under the account running the agent or installation command.
- The payload can access resources available to that account, subject to operating ...[truncated 683 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin every third-party dependency to a specifically reviewed version, for example through a version-controlled requirements file.
- Generate and verify cryptographic hashes, and install with
pip install --require-hashes -r requirements.txt. - Use a lockfile produced by a dependency-management tool and review lockfile changes before deployment.
- Configure an approved, authenticated package index or internal mirror rather than relying on arbitrary environment-level index configuration.
- Install packages inside an isolated virtual environment or container using a non-privileged account.
- Run dependency vulnerability and provenance scanning in CI, and establish a controlled process for reviewing and updating pinned versions.
- Avoid performing dependency installation automatically from natural-language instructions; require explicit user approval before package installation.
