T08 · Insecure Dependencies
- Location
SKILL.md:20- Finding
Unpinned Remote Repository and Dependency Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 20-29
Vulnerability Type: Unverified remote source and dependency installation
Risk Level: HighComplete Code Snippet:
bash # Clone repository git clone https://github.com/ZhenRobotics/openclaw-quant.git ~/openclaw-quant cd ~/openclaw-quant # Install dependencies pip install -r requirements.txt # Set API keys (optional for backtesting) export BINANCE_API_KEY="your-key" export BINANCE_API_SECRET="your-secret"The equivalent instructions also appear in
SKILL-ZH.md, lines 20-29.Technical Analysis
The installation procedure clones the mutable default branch of an external Git repository and immediately installs packages from its externally controlled
requirements.txt. It does not pin the repository to a reviewed commit, verify a release signature or checksum, require dependency hashes, or direct installation into an isolated environment.Consequently, the code and dependency definitions installed by users can differ from the version that was originally reviewed. Python package installation may execute build-system hooks or setup logic under the installing user's privileges. A compromise of the upstream repository, its maintainer account, or one of its dependencies could therefore result in arbitrary code execution during installation.
The audited project contains only documentation, so no malicious remote payload was directly observed. This finding concerns the unsafe and unverifiable installation trust chain documented by the Skill.
Attack Path
- An attacker compromises the upstream repository, a maintainer account, or a dependency referenced by
requirements.txt. - The attacker modifies the default branch or dependency resolution path to include malicious package installation or build logic.
- A user follows the Skill instructions and clones the latest mutable repository state.
- The user runs `pip install -r ...[truncated 1321 chars]
- An attacker compromises the upstream repository, a maintainer account, or a dependency referenced by
- Remediation
View remediation
Remediation Suggestions
- Pin the remote repository to a specific reviewed commit or cryptographically signed release rather than cloning a mutable default branch.
- Publish and verify an expected commit identifier, release signature, or SHA-256 checksum before installation.
- Pin every Python dependency and transitive dependency to an exact reviewed version using a generated lockfile.
- Require package hashes, such as through
pip install --require-hashes -r requirements.txt. - Install inside a dedicated virtual environment or similarly isolated runtime under a non-privileged account.
- Avoid configuring exchange credentials until repository and dependency integrity checks have completed.
- Recommend exchange API keys with only the minimum required permissions, no withdrawal capability, symbol or account restrictions where supported, and IP allowlisting.
- Use testnet or paper-trading mode by default and require separate, explicit confirmation before enabling live trading.
- Audit the resolved repository revision and complete dependency graph before presenting the installation as trusted.
- Apply the same hardened installation instructions to both
SKILL.mdandSKILL-ZH.md.
