T08 · Insecure Dependencies
- Location
- SKILL.md:35
- Finding
- Unpinned Third-Party Dependency Installation## Vulnerability Details **File Locations**: - `SKILL.md:35-39` - `SKILL.md:134` - `eval-reference.md:74-76` - `rag-reference.md:5` - `troubleshooting.md:52` **Vulnerability Type**: Unpinned and unverified third-party dependencies **Risk Level**: Medium ### Vulnerable Code ```bash pip install evalscope pip install 'evalscope[all]' pip install 'evalscope[perf]' pip install 'evalscope[rag]' pip install 'evalscope[service]' ``` Other documented installation commands include: ```bash pip install 'evalscope[opencompass]' pip install 'evalscope[vlmeval]' pip install 'evalscope[rag]' ``` ### Technical Analysis The Skill instructs users or an Agent to install EvalScope and several optional dependency sets from the active Python package index without version constraints, package hashes, a lockfile, or an explicitly trusted repository. The broad `evalscope[all]` extra also expands the number of transitive packages trusted during installation. Because these package references are mutable, the code installed when the instructions are followed may differ from the code reviewed when the Skill was audited. Python packages and their build systems may execute code during installation or later import. A compromised upstream release, compromised transitive dependency, or malicious package supplied by an untrusted configured index could therefore result in arbitrary code execution. No evidence establishes that the named packages are currently malicious. The issue is the absence of supply-chain integrity controls in the documented installation process. ### Attack Path 1. An attacker compromises an upstream package, one of its transitive dependencies, or a Python package index configured in the execution environment. 2. The attacker publishes a malicious release that satisfies the unconstrained package requirement. 3. A user or Agent follows the Skill instructions and runs an unpinned `pip install` command. 4. Pip downloads the mutable package and dependency set without va ...[truncated 824 chars]
- Remediation
- ## Remediation Suggestions 1. Pin EvalScope and every optional package set to reviewed versions. 2. Maintain a lockfile containing resolved transitive versions and cryptographic hashes. 3. Install with hash verification, such as `pip install --require-hashes -r requirements.txt`. 4. Configure and document an explicitly trusted package index rather than relying on the environment's active index configuration. 5. Install packages inside a dedicated virtual environment or restricted container. 6. Avoid the broad `[all]` extra unless every included backend is required; install only the minimum necessary feature set. 7. Regularly scan locked dependencies for known vulnerabilities and review version changes before updating. 8. Avoid running package installation as root or from an account holding production credentials.
