T08 · Insecure Dependencies
- Location
skill.json:40- Finding
Unpinned Third-Party Package Execution During Installation
- Content
View full analysis
Vulnerability Details
File Location:
skill.json:40
Additional Location:README.md:50-52
Vulnerability Type: Supply-chain risk caused by executing a mutable package version
Risk Level: MediumVulnerable Code
skill.json:40:json "install": "npx clawhub@latest install freeride && cd ~/.openclaw/workspace/skills/free-ride && pip install -e ."README.md:50-52:bash npx clawhub@latest install free-ride cd ~/.openclaw/workspace/skills/free-ride pip install -e .Technical Analysis
The installation procedure invokes
npx clawhub@latest. Thelatesttag is mutable, so the package downloaded and executed at installation time can differ from the package that existed when this Skill was audited. Becausenpxexecutes package-provided code, compromise of the npm package, publisher account, release process, or dependency chain could result in arbitrary code execution.No exact package version, integrity hash, or lockfile constrains the executable installer. There is also an identifier inconsistency:
skill.jsoninstallsfreeride, while the README installsfree-ride. This could cause unintended package or Skill resolution, depending on the installer's behavior.The local
pip install -e .step installs the audited project itself andrequests>=2.31.0; no custom setup-time payload was found insetup.py. The principal confirmed risk is the mutable remote package executed throughnpx.Attack Path
- An attacker compromises the
clawhubnpm publisher account, package release pipeline, registry resolution path, or a dependency used by a future release. - The attacker publishes a malicious release and causes the mutable
latesttag to resolve to it. - A user follows the documented installation command or the metadata-driven installer runs it.
npxdownloads and executes the changed package before the user can verify its contents.- The maliciou ...[truncated 778 chars]
- An attacker compromises the
- Remediation
View remediation
Remediation Suggestions
- Replace
clawhub@latestwith an exact, reviewed version, for exampleclawhub@X.Y.Z. - Verify the downloaded package using registry integrity metadata or a separately published cryptographic checksum.
- Use lockfiles where applicable and review transitive dependency changes before updating the installer.
- Standardize the Skill identifier so both metadata and documentation consistently use the intended slug.
- Avoid automatically executing remotely resolved installer code when a locally reviewed installation method is available.
- Pin Python dependencies to reviewed versions or constrained compatible ranges and use hashes for reproducible deployments.
- Document the external code-execution boundary so users understand that the npm installer is not part of the audited artifact.
- Replace
