T08 · Insecure Dependencies
Warning
- Location
- package.json:8
- Finding
- Unpinned Executable Dependencies Create Supply-Chain Risk## Vulnerability Details **File Location**: `package.json:8`; additional declarations in `requirements.txt:2-3` and `SKILL.md:145` **Vulnerability Type**: Unpinned third-party dependencies and use of a mutable latest release **Risk Level**: Medium ### Vulnerable Code ```json "install-deps": "pip install -r requirements.txt && playwright install chromium" ``` The associated Python dependency declarations are: ```text playwright>=1.40.0 markdown>=3.5.0 ``` The installation documentation also recommends: ```bash npx clawhub@latest install baijiahao-publish ``` ### Technical Analysis The project installs executable third-party components without exact version or artifact-integrity constraints. The lower-bound specifiers permit package managers to select any later release, while `clawhub@latest` explicitly resolves to a mutable release at installation time. Package installation and Playwright browser setup can execute package-controlled installation logic with the privileges of the user performing the installation. Consequently, the effective installed code can change after this skill has been audited. This is a supply-chain weakness rather than evidence that the currently named dependencies are malicious. ### Attack Path 1. An upstream package, maintainer account, distribution channel, or newly published dependency version is compromised. 2. The attacker publishes a malicious version that satisfies the `>=` constraint or controls the release resolved by `@latest`. 3. A user follows the documented installation procedure. 4. The package manager downloads the unreviewed release and executes its installation or runtime code. 5. The malicious component runs under the installing user's account and can access data and resources available to that account. ### Impact Assessment Successful exploitation could result in arbitrary code execution with the privileges of the user installing or invok ...[truncated 317 chars]
- Remediation
- ## Remediation Suggestions - Pin every Python dependency to an exact, reviewed version rather than using lower-bound constraints. - Generate and commit a reproducible lock file containing cryptographic hashes for all direct and transitive dependencies. - Install dependencies with hash verification enabled, such as `pip install --require-hashes`. - Replace `clawhub@latest` with an explicitly reviewed version. - Document the expected package registries and reject untrusted mirrors or extra indexes. - Add automated dependency scanning and require review before updating lock files. - Where possible, install and run the skill in an isolated environment with minimal filesystem and credential access.
