T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:10
- Finding
- Unpinned Third-Party Python Dependencies## Vulnerability Details **File Location**: `SKILL.md`, lines 10 and 23 **Vulnerability Type**: Unpinned third-party dependencies and mutable transitive dependency resolution **Risk Level**: Medium **Complete Code Snippets**: ```yaml metadata: openclaw: requires: bins: ["python3"] install: - id: quantclaw-deps kind: shell command: "pip install yfinance numpy scipy pandas statsmodels pandas-datareader requests beautifulsoup4" label: "Install Python dependencies" ``` The same unsafe installation instruction is repeated in the Quick Start section: ```bash # Install deps pip install yfinance numpy scipy pandas statsmodels pandas-datareader requests beautifulsoup4 ``` ### Technical Analysis The Skill installs eight Python packages without exact version constraints or cryptographic integrity hashes. Consequently, `pip` resolves the latest versions satisfying each package's metadata, along with mutable transitive dependencies, from the configured package index at installation time. Python package installation can execute package build backends and installation-related code. If a named package, one of its transitive dependencies, the configured package index, or an upstream release is compromised, installation may execute attacker-controlled code with the privileges of the user running the Skill installer. Even without a malicious compromise, unreviewed package updates can introduce incompatible behavior or silently change financial calculations. The reviewed artifact does not include a lockfile, hash-locked requirements file, or vendored dependency set that would make installation reproducible and integrity-verifiable. ### Attack Path 1. An attacker compromises an upstream package, a transitive dependency, or the package distribution channel used by `pip`. 2. The attacker publishes a malicious release that remains eligible because the Skill specifies no version ...[truncated 995 chars]
- Remediation
- ## Remediation Suggestions 1. Move all dependencies into a reviewed requirements or lock file and pin every direct and transitive dependency to an exact version. 2. Record cryptographic hashes for every permitted distribution and install with hash verification, for example: ```bash python3 -m pip install --require-hashes -r requirements.txt ``` 3. Generate and review the lock file using a reproducible dependency-management workflow such as `pip-tools`, Poetry, or an equivalent controlled process. 4. Install dependencies in a dedicated virtual environment or container under a non-privileged account; do not recommend system-wide or root-level installation. 5. Prefer pre-reviewed binary wheels where appropriate and restrict unexpected source builds. 6. Use an approved package index or internal mirror and continuously scan locked dependencies for known vulnerabilities and compromised releases. 7. Update both the installation metadata and Quick Start documentation so they reference the same integrity-locked installation process.
