T08 · Insecure Dependencies
Warning
- Location
- INSTALLATION.md:17
- Finding
- Unpinned and Unverified Remote Installation Sources<![CDATA[ ## Vulnerability Details **File Location**: `INSTALLATION.md:17`, `INSTALLATION.md:28-30`, and `INSTALLATION.md:43` **Related Location**: `package.json:21-24` **Vulnerability Type**: Supply-chain exposure through mutable and unverified dependencies **Risk Level**: Medium ### Vulnerable Code ```bash # INSTALLATION.md:17 npm install -g clawdhub ``` ```bash # INSTALLATION.md:28-30 git clone https://github.com/openclaw/claw-ethics-checker.git # Or download directly wget https://github.com/openclaw/claw-ethics-checker/archive/main.zip ``` ```bash # INSTALLATION.md:43 pip install claw-ethics-checker ``` The package metadata also identifies a different repository: ```json // package.json:21-24 "repository": { "type": "git", "url": "https://github.com/openclaw-skills/claw-ethics-checker" }, ``` ### Technical Analysis The installation instructions retrieve packages and source code from remote locations without pinning an exact package version, immutable Git commit, release artifact digest, or cryptographic signature. The npm and pip commands resolve the package version available from their registries at installation time. The Git clone and ZIP download retrieve the mutable default branch. Consequently, the effective code installed by these commands can change after this Skill has been reviewed. The global npm installation is particularly sensitive because npm packages may define lifecycle scripts that execute during installation. Such scripts run with the permissions of the user performing the installation. The Python package can similarly execute build or installation logic depending on its packaging configuration. There is also a provenance inconsistency: `INSTALLATION.md` downloads from `openclaw/claw-ethics-checker`, while `package.json` declares `openclaw-skills/claw-ethics-checker`. This ambiguity makes it harder for users to determine which repository is authoritative and increases the risk of installing substituted or unrelated conten ...[truncated 2065 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin npm and pip dependencies to reviewed, exact versions: ```bash npm install -g clawdhub@<reviewed-version> python3 -m pip install claw-ethics-checker==<reviewed-version> ``` 2. Pin manual installations to an immutable Git commit: ```bash git clone https://github.com/<canonical-owner>/claw-ethics-checker.git cd claw-ethics-checker git checkout <full-reviewed-commit-hash> ``` 3. Publish release artifacts with SHA-256 checksums and verify them before extraction: ```bash wget https://github.com/<canonical-owner>/claw-ethics-checker/releases/download/<version>/claw-ethics-checker.zip echo "<expected-sha256> claw-ethics-checker.zip" | sha256sum --check - ``` 4. Cryptographically sign releases or commits and document signature verification. 5. Reconcile `INSTALLATION.md`, `EXAMPLES.md`, and `package.json` so every reference identifies one canonical repository owner and URL. 6. Avoid global npm installation unless it is required. Prefer a dedicated, least-privileged environment and review package lifecycle scripts before installation. 7. Use a Python virtual environment rather than installing into a shared or privileged interpreter: ```bash python3 -m venv .venv . .venv/bin/activate python3 -m pip install --require-hashes -r requirements.txt ``` 8. Configure automated dependency and provenance checks to detect repository ownership changes, unexpected package releases, and checksum mismatches. ]]>
