T08 · Insecure Dependencies
Warning
- Location
- README.md:44
- Finding
- Unpinned Remote Skill Installation Creates a Supply-Chain Risk## Vulnerability Details **File Location**: `README.md:44`, `README.md:157`, and `SKILL.md:21` **Vulnerability Type**: Unpinned third-party dependency installation **Risk Level**: Medium ### Vulnerable Code Snippets `README.md:44` and `README.md:157`: ```bash npx skills add https://github.com/BovmantH/openclaw-model-failover-guard.git --skill model-failover-guard ``` `SKILL.md:21`: ```bash npx skills add BovmantH/openclaw-model-failover-guard --skill model-failover-guard ``` ### Technical Analysis The documented installation commands invoke `npx` and retrieve the Skill from a mutable third-party source without pinning it to an immutable commit hash or verified release artifact. No checksum, signature, lock file, or integrity-verification procedure is provided. Consequently, the code installed when a user follows these instructions may differ from the code reviewed during this audit. Changes to the repository's default branch, compromise of the repository owner, compromise of the package used through `npx`, or transfer of the upstream project could introduce malicious code after review. This is a supply-chain weakness rather than evidence that the currently audited scripts are malicious. The reviewed `failover.py` did not contain an embedded remote payload or intentionally malicious behavior. ### Attack Path 1. An attacker compromises the upstream repository, its maintainer account, or another component involved in the `npx` installation process. 2. The attacker modifies the mutable repository branch or distributed package to include malicious Skill instructions or executable scripts. 3. A user follows the documented unpinned installation command. 4. `npx` retrieves the current upstream content rather than the specific content covered by this audit. 5. The altered Skill is installed and may subsequently execute with the privileges of the user running OpenClaw or the Skill. 6. Depending on the injected paylo ...[truncated 894 chars]
- Remediation
- ## Remediation Suggestions 1. Pin the Skill source to a reviewed, immutable Git commit hash rather than a mutable default branch. 2. Pin the `skills` installer package to an exact trusted version instead of allowing `npx` to resolve a changing version. 3. Publish versioned release archives and provide SHA-256 or stronger checksums. 4. Sign releases and document how users must verify the signature before installation. 5. Prefer an installation process equivalent to: ```bash npx skills@<exact-trusted-version> add \ https://github.com/BovmantH/openclaw-model-failover-guard.git#<reviewed-commit-hash> \ --skill model-failover-guard ``` 6. Add the reviewed commit identifier and expected integrity digest to both `README.md` and `SKILL.md`. 7. Establish a release-review process so that each published version is audited and mapped to its immutable source commit.
