T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:17
- Finding
- Unpinned Third-Party Executable Dependency<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:17-21` **Additional Location**: `README.md:33-39` **Vulnerability Type**: Supply-chain risk from an unpinned executable dependency **Risk Level**: Medium ### Vulnerable Code ```yaml - id: node-loom-dl kind: node package: loom-dl bins: [loom-dl] label: Install loom-dl (npm) ``` The installation documentation also recommends installing the package without a version constraint: ```bash npm install -g loom-dl ``` ### Technical Analysis The skill declares and executes the third-party npm package `loom-dl` without pinning an exact version or enforcing an integrity hash. Consequently, installations at different times may retrieve different package contents, and the effective executable can change after this skill has been audited. Because the package is installed globally and later invoked by `process-loom.sh`, a compromised publisher account, malicious future release, or compromised upstream distribution path could cause arbitrary package code to run with the privileges of the user performing the installation or invoking the CLI. This is a supply-chain weakness rather than evidence that the current `loom-dl` package is malicious. ### Attack Path 1. An attacker compromises the `loom-dl` npm publishing account, package repository, or release process. 2. The attacker publishes a malicious version under the legitimate package name. 3. A user or OpenClaw installation process follows the unversioned dependency declaration or runs `npm install -g loom-dl`. 4. npm installs the attacker-controlled release because no exact version or integrity value is enforced. 5. The skill invokes `loom-dl` from `process-loom.sh`. 6. The malicious dependency executes with the invoking user's privileges and can access the supplied Loom URL, inherited environment variables, and resources available to that user. ### Impact Assessment Successful exploitation could provide arbitrary code execution with the privi ...[truncated 351 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin `loom-dl` to an exact, reviewed version rather than accepting the latest release. 2. Use a project-local dependency with a committed lockfile instead of recommending a global npm installation. 3. Enforce package integrity through npm lockfile integrity values or an equivalent verified artifact hash. 4. Document the expected package publisher, source repository, and reviewed version. 5. Run the downloader with the minimum necessary filesystem and network permissions, preferably in a sandbox. 6. Establish a dependency-update process that requires source review and renewed integrity verification before changing the pinned version. ]]>
