T08 · Insecure Dependencies
- Location
SKILL.md:14- Finding
Unpinned Python Dependency Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 14–19
Vulnerability Type:T08: Insecure Dependencies
Risk Level: LowVulnerable Code
yaml "requires": { "bins": ["python3", "curl"] }, "install": [ { "id": "requests", "kind": "pip", "package": "requests",Technical Analysis
The skill declares installation of the Python
requestspackage without specifying an exact version, cryptographic hash, or trusted package index. Consequently, the installed artifact depends on mutable package-index state, dependency resolution at installation time, and the user's local pip configuration.The declared package is a legitimate and widely used dependency, and the repository contains no evidence that it intentionally references a malicious package. Nevertheless, an unpinned installation creates supply-chain exposure. If the configured package source, a future release, or a transitive dependency is compromised, installation or subsequent import could execute attacker-controlled Python code.
The repository contains no lock file or implementation from which the resolved dependency versions can be audited.
Attack Path
- A user or automated agent installs the skill and processes its declared pip dependency.
- Pip resolves
requestsand its transitive dependencies using the package indexes and configuration active in the environment. - An attacker must first compromise a resolved package release, a configured package index or mirror, or dependency-resolution infrastructure.
- Pip downloads and installs the attacker-controlled distribution because no reviewed version or artifact hash is enforced.
- Malicious build behavior may execute during installation, or malicious package code may execute when the dependency is imported.
- The payload runs with the permissions of the process performing installation or using the package.
Impact Assessment
Success ...[truncated 577 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin
requeststo an exact, reviewed version rather than allowing unrestricted resolution. - Maintain dependencies in a lock or requirements file containing cryptographic hashes, for example by generating a hash-locked requirements file with
pip-compile. - Install with hash enforcement:
bash python3 -m pip install --require-hashes -r requirements.txt - Explicitly use an approved HTTPS package index and disable unexpected supplemental indexes where operationally feasible.
- Pin and hash all transitive dependencies, not only the direct
requestsdependency. - Periodically review pinned versions for security advisories and update them through a controlled testing and approval process.
- Perform dependency installation in an isolated virtual environment or restricted container under a non-privileged account.
- Pin
