T08 · Insecure Dependencies
- Location
skill.json:40- Finding
Mutable Dependencies and Inconsistent Skill Identifier Create Supply-Chain Risk
- Content
View full analysis
=2.31.0 ``` `setup.py:10-12`: ```python install_requires=[ "requests>=2.31.0", ], ``` ### Technical Analysis The installation procedure executes the mutable `latest` release of the `clawhub` npm package through `npx`. Because no exact version or package integrity value is specified, the code executed during installation can change after this Skill has been reviewed. The Python dependency declaration also imposes only a minimum version. Any future `requests` release satisfying `>=2.31.0` may consequently be selected during installation. Although `requests` is a legitimate dependency, unconstrained future resolution reduces reproducibility and makes the installed dependency set differ from the set that was audited. There is also an identifier inconsistency: the documented and published Skill slug is `free-ride`, while the installation command in `skill.json` requests `freeride`. Depending on registry behavior, this may cause installation failure or resolution to a different Skill. If an unrelated registry entry can claim or already owns the alternate identifier, users following the metadata-provided command could install unintended content. These conditions constitute a supply-chain weakness rather than evidence that the currently reviewed dependencies are malicious. ### Attack Path 1. A user or automated installer reads and executes the installation command from `skill.jso ...[truncated 1570 chars]- Remediation
View remediation
install free-ride ``` 2. Use the canonical Skill identifier consistently. Change `freeride` in `skill.json` to `free-ride` if that is the registry's canonical slug: ```json "install": "npx clawhub@ install free-ride && cd ~/.openclaw/workspace/skills/free-ride && pip install -e ." ``` 3. Pin Python dependencies to reviewed versions instead of allowing all future releases: ```text requests== ``` 4. Generate and maintain a lockfile or hash-verified requirements file. For example, use `pip-compile --generate-hashes` and install with: ```bash pip install --require-hashes -r requirements.txt ``` 5. Review dependency updates explicitly through a controlled update process, including source, maintainer, changelog, and vulnerability checks. 6. Ensure the installation documentation, `skill.json`, `_meta.json`, repository metadata, and package metadata all use the same canonical name and version. 7. Where supported, verify downloaded Skill artifacts with registry integrity metadata, signatures, or checksums before installation. ]]>
