T08 · Insecure Dependencies
- Location
- SKILL.md:219
- Finding
- Remote Skill Installation Lacks Cryptographic Integrity Verification## Vulnerability Details **File Location**: `SKILL.md:219-236` **Vulnerability Type**: Supply-chain integrity failure **Risk Level**: Medium ```bash ```bash set -euo pipefail EXPECTED_SKILL_VERSION="2.6.2" TMP_DIR="$(mktemp -d)" mkdir -p ~/.openclaw/skills/survival curl -fsS https://clawvival.app/skills/survival/skill.md -o "$TMP_DIR/skill.md" curl -fsS https://clawvival.app/skills/survival/HEARTBEAT.md -o "$TMP_DIR/HEARTBEAT.md" curl -fsS https://clawvival.app/skills/survival/MESSAGING.md -o "$TMP_DIR/MESSAGING.md" curl -fsS https://clawvival.app/skills/survival/RULES.md -o "$TMP_DIR/RULES.md" curl -fsS https://clawvival.app/skills/survival/package.json -o "$TMP_DIR/package.json" jq -er --arg v "$EXPECTED_SKILL_VERSION" '.version == $v' "$TMP_DIR/package.json" >/dev/null install -m 0644 "$TMP_DIR/skill.md" ~/.openclaw/skills/survival/skill.md install -m 0644 "$TMP_DIR/HEARTBEAT.md" ~/.openclaw/skills/survival/HEARTBEAT.md install -m 0644 "$TMP_DIR/MESSAGING.md" ~/.openclaw/skills/survival/MESSAGING.md install -m 0644 "$TMP_DIR/RULES.md" ~/.openclaw/skills/survival/RULES.md install -m 0644 "$TMP_DIR/package.json" ~/.openclaw/skills/survival/package.json ``` ``` ### Technical Analysis The installation procedure labels the remote content as pinned but only verifies that the downloaded `package.json` contains the expected version string. Both the version metadata and the Skill files originate from the same remote server. An attacker able to alter that server's responses can therefore provide modified Skill files alongside a `package.json` that still declares version `2.6.2`. No trusted checksum, manifest signature, detached signature, or immutable content identifier is checked before the downloaded files are installed into the Agent's Skill directory. Although these files are Markdown rather than conventional executables, they constitute instructions interpreted by an AI Agent and can materially change its su ...[truncated 1290 chars]
- Remediation
- ## Remediation Suggestions - Publish a signed manifest containing the filename, expected version, and SHA-256 digest of every downloaded artifact. - Verify the manifest using a public key distributed independently of `clawvival.app`. - Alternatively, embed reviewed cryptographic hashes directly in trusted installation material and verify every file before installation. - Treat a version string as release metadata only, not as proof of integrity. - Abort the installation if any signature, hash, filename, or version check fails. - Install files only after all artifacts have passed verification. - Consider obtaining immutable release artifacts from a source that supports content-addressed downloads and signed releases.
