T08 · Insecure Dependencies
Warning
- Location
- README.md:27
- Finding
- Unpinned Third-Party Installer Execution and Mutable Remote Skill Installation## Vulnerability Details **File Location**: `README.md:27-38`; duplicated in `SKILL.md:328-337` **Vulnerability Type**: Supply-chain exposure through unpinned external installation sources **Risk Level**: Medium ### Vulnerable Code `README.md:27-38`: ```bash #### Method 1: Use ClawHub (recommended) ```bash npx skills add davidme6/openclaw@smart-model-switcher-v3 ``` #### Method 2: Manual installation ```bash # Clone repository git clone https://github.com/davidme6/openclaw.git ``` `SKILL.md:328-337`: ```bash # Clone repository git clone https://github.com/davidme6/openclaw.git # Copy skill into the workspace cp -r openclaw/skills/smart-model-switcher-v3 ~/.openclaw/workspace/skills/ # Or use ClawHub npx skills add davidme6/openclaw@smart-model-switcher-v3 ``` ### Technical Analysis The installation instructions use `npx` without pinning the `skills` package to a specific, verified version. Depending on local npm behavior and cache state, `npx` can retrieve and execute package code from the configured npm registry. The skill identifier and Git repository are also mutable references rather than immutable commit hashes or integrity-verified artifacts. As a result, the content installed by these commands is not guaranteed to match the four files reviewed during this audit. A later repository change, malicious package release, compromised publisher account, compromised upstream repository, or registry-level supply-chain incident could cause users to retrieve and execute unaudited content. The risk is increased by the artifact's references to scripts that are not included in the reviewed package: - `README.md:143-173` references `scripts/runtime-switch.ps1` and `scripts/auto-monitor.ps1`. - `SKILL.md:357` references `scripts/check-availability.js`. Therefore, following the remote installation instructions may introduce executable files that were unavailable for inspection in this audit. ### ...[truncated 1661 chars]
- Remediation
- ## Remediation Suggestions 1. Pin the `skills` npm package to an exact audited version instead of invoking an unversioned package: ```bash npx --yes skills@EXACT_AUDITED_VERSION add davidme6/openclaw@smart-model-switcher-v3 ``` 2. Pin the skill source to an immutable release artifact or full Git commit hash rather than a mutable branch or skill alias. 3. Publish and verify a SHA-256 digest or cryptographic signature for every distributed skill archive before installation. 4. Bundle all referenced scripts in the reviewed release so that installed behavior can be audited. Do not advertise absent scripts as implemented functionality. 5. Generate a manifest listing every installed file and its expected digest. Have the installer reject missing, additional, or modified files. 6. Prefer downloading and verifying an artifact before executing any installer. Avoid direct `npx` execution when a verified local installation method is available. 7. Use a locked dependency graph and enable provenance verification for npm packages used during installation. 8. Run installation with a non-privileged account and ensure that the process cannot access unrelated secrets or system-wide directories.
