T08 · Insecure Dependencies
- Location
SKILL.md:307- Finding
Unpinned Third-Party Dependency Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:307andSKILL.md:342-345
Vulnerability Type: Unpinned and mutable third-party dependencies
Risk Level: MediumVulnerable Snippet
bash pip install openpyxl pandas xlrd formulasThe dependency table also provides the following installation commands without version or integrity constraints:
text openpyxl | Required | pip install openpyxl pandas | Required | pip install pandas xlrd | Optional | pip install xlrd formulas | Optional | pip install formulasTechnical Analysis
The skill directs the agent to install third-party Python packages from the active pip package index without specifying reviewed versions, cryptographic hashes, a lock file, or an explicitly trusted repository. Package installation can execute package build and installation logic with the privileges of the invoking process.
Because the requested package versions are mutable, an installation performed at a later time may resolve to code that differs from the code originally reviewed. The risk is greater in environments with a compromised package index, an unsafe pip mirror, altered dependency-resolution settings, or a malicious transitive dependency.
The listed package names are conventional, and the audited file does not identify an intentionally malicious package or repository. This finding concerns the unsafe dependency acquisition process rather than evidence that the named packages are currently malicious.
Attack Path
- A user invokes the skill in an environment where one or more dependencies are not installed.
- The agent follows the documented
pip installinstruction. - Pip resolves unpinned packages and their transitive dependencies through the environment's configured package index.
- An attacker who has compromised a resolved package, dependency, index, or mirror supplies attacker-controlled package content.
- Package build or ins ...[truncated 765 chars]
- Remediation
View remediation
Remediation Suggestions
- Replace unconstrained installation commands with a committed dependency manifest containing reviewed, exact versions.
- Generate and verify cryptographic hashes for every direct and transitive dependency, and install with
pip install --require-hashes. - Use a reproducible lock file produced by a dependency-management tool.
- Explicitly use an approved package index and prevent fallback to untrusted or user-controlled mirrors.
- Install dependencies inside an isolated virtual environment or disposable sandbox under an unprivileged account.
- Scan pinned packages and transitive dependencies for known vulnerabilities before release.
- Review dependency updates before changing pins rather than automatically accepting the latest release.
- Avoid installing packages dynamically during ordinary skill execution; provision the reviewed environment separately.
