T08 · Insecure Dependencies
- Location
SKILL.md:133- Finding
Unpinned Python Dependencies Installed Without Integrity Verification
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 133 and 245-246
Vulnerability Type: Unpinned third-party dependencies and missing integrity verification
Risk Level: LowVulnerable Code Snippet
bash pip install pyyaml jsonschemaThe dependency instructions later repeat installation without version or hash constraints:
bash pip install pyyaml pip install jsonschemaTechnical Analysis
The skill instructs users or an execution-capable agent to install
pyyamlandjsonschemawithout specifying exact versions, package hashes, or a trusted package index. Consequently, the resolved artifacts can change between installations even though the reviewed skill remains unchanged.The package names appear legitimate and there is no evidence that the skill intentionally selects a malicious or misspelled package. Nevertheless, installation depends entirely on the current state of the configured Python package index. If an upstream release, package-maintainer account, package index, or local package-index configuration is compromised,
pipmay retrieve attacker-controlled installation content.Python packages can execute build-system code during installation in relevant distribution scenarios. A malicious dependency can also execute later when imported by the manifest-generation or validation process. Because the skill allows the
exectool, an agent may follow these installation instructions directly rather than requiring a user to perform and review the installation.Attack Path
- A user or agent follows the environment-preparation instruction and runs
pip install pyyaml jsonschema. pipresolves the latest compatible versions from its configured package index because the skill provides no lock file or exact constraints.- An attacker must first compromise an upstream package, its publishing credentials, the selected package index, or the environment's index configuration.
- The compromised artifact is down ...[truncated 1204 chars]
- A user or agent follows the environment-preparation instruction and runs
- Remediation
View remediation
Remediation Suggestions
- Pin every dependency to a reviewed exact version:
bash python3 -m pip install \ "PyYAML==REVIEWED_VERSION" \ "jsonschema==REVIEWED_VERSION"- Maintain dependencies in a lock or requirements file containing cryptographic hashes, and require hash verification:
bash python3 -m pip install \ --require-hashes \ --only-binary=:all: \ -r requirements.lock-
Generate the lock file from reviewed artifacts and commit it with the skill so dependency changes are auditable.
-
Specify an approved HTTPS package index through controlled environment configuration. Do not silently fall back to untrusted extra indexes or mirrors.
-
Install dependencies inside an isolated virtual environment or container using a non-privileged account. Never recommend system-wide or root-level installation.
-
Scan and periodically update pinned dependencies through a controlled review process. Validate signatures or provenance attestations where the package ecosystem and selected repository support them.
-
If agents may execute setup commands automatically, require explicit user approval before dependency installation and display the package versions, source index, and expected hashes before execution.
