T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:8
- Finding
- Unpinned Third-Party Dependencies Create Supply-Chain Risk## Vulnerability Details **File Location**: `SKILL.md`, lines 8-10 and 28-32 **Vulnerability Type**: Unpinned and unverifiable third-party dependencies **Risk Level**: Medium ### Vulnerable Code ```yaml metadata: openclaw: emoji: "🧪" requires: bins: ["povray", "python3"] pip: ["rdkit", "numpy"] optionalPip: ["biopython"] ``` ```bash pip install rdkit numpy apt-get install -y povray # For PDB support: pip install biopython ``` ### Technical Analysis The Skill declares and recommends installing `rdkit`, `numpy`, and `biopython` without exact version constraints or package-integrity hashes. Dependency resolution therefore selects whichever compatible versions are available from the configured package index at installation time. This makes installations non-reproducible and leaves the Skill exposed to upstream package compromise, malicious releases, compromised package indexes, or unsafe index configuration. The project does not provide a lock file, hashes, or an explicitly trusted package source that would allow users to verify that the installed artifacts are the versions reviewed by the Skill author. The package names appear legitimate, and no direct evidence of a currently malicious dependency was identified. The risk arises from the unsafe dependency-management practice rather than from a confirmed compromise of those packages. ### Attack Path 1. An attacker compromises an upstream dependency release, its distribution account, a configured package index, or the dependency-resolution path. 2. The attacker publishes or serves a malicious version under one of the names accepted by the unpinned installation commands. 3. A user follows the documented `pip install` command, or the agent framework automatically resolves the dependencies from the metadata. 4. The malicious package is installed because no version or artifact hash is enforced. 5. Attacker-controlled code execut ...[truncated 688 chars]
- Remediation
- ## Remediation Suggestions 1. Pin every Python dependency to a reviewed version in a dedicated requirements file or lock file. 2. Generate and enforce cryptographic hashes for all resolved artifacts, for example with `pip-tools` and `pip install --require-hashes`. 3. Pin transitive dependencies as well as direct dependencies to make builds reproducible. 4. Explicitly configure a trusted package index and prevent fallback to untrusted or unintended indexes. 5. Install dependencies in a dedicated virtual environment under a non-privileged account. 6. Add automated dependency vulnerability and provenance scanning to the release process. 7. Document a controlled upgrade procedure requiring review and testing before dependency pins are changed. Example hardened installation pattern: ```bash python3 -m venv .venv . .venv/bin/activate python3 -m pip install --require-hashes -r requirements.lock ```
