T08 · Insecure Dependencies
- Location
SKILL.md:151- Finding
Unpinned Third-Party Python Dependencies
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 151–155
Vulnerability Type: Unpinned third-party dependencies and insufficient supply-chain integrity controls
Risk Level: MediumVulnerable Code:
bash pip install pyyaml tomlTechnical Analysis
The documented installation command retrieves
pyyamlandtomlwithout version constraints, package hashes, or a lock file. Consequently, the installed artifacts depend on whichever releases and package index are available when the command runs. This prevents reproducible installation and does not provide integrity verification beyond pip's default transport and index controls.Python package installation may execute attacker-controlled build or installation logic. If an upstream project, release process, package-index account, or configured package index is compromised, following this instruction could install and execute a malicious package version. The project contains no evidence that such a compromise has occurred; this finding concerns the avoidable exposure created by the installation guidance.
Attack Path
- An attacker compromises an upstream dependency release, its publishing credentials, or a package index trusted by the user's pip configuration.
- The attacker publishes a malicious release of a referenced dependency.
- A user follows the Skill's unpinned
pip install pyyaml tomlinstruction. - Pip resolves and downloads the attacker-controlled release.
- Malicious build or installation logic executes with the privileges of the user running pip.
- The installed package may execute additional malicious behavior when imported by the conversion examples.
Impact Assessment
Successful exploitation could provide arbitrary code execution with the privileges of the user or automation account performing the installation. Depending on that account's access, the attacker could read or modify accessible project files, configu ...[truncated 208 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin each dependency to a reviewed exact version rather than resolving the latest available release.
- Store dependency constraints in a version-controlled requirements or lock file.
- Generate and verify cryptographic hashes, then install with a command such as
pip install --require-hashes -r requirements.txt. - Explicitly use an approved package index and prevent untrusted extra indexes from taking precedence.
- Periodically review and update pinned versions after vulnerability and provenance checks.
- Prefer installation inside an isolated virtual environment or restricted build environment using a non-privileged account.
- Where supported, verify package provenance and retain a vetted internal package mirror for CI/CD use.
