T08 · Insecure Dependencies
- Location
SKILL.md:219- Finding
Remote Skill Installation Lacks Cryptographic Integrity Verification
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:219-236
Vulnerability Type: Supply-chain integrity failure
Risk Level: Mediumbash ```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.jsontext ### 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
View 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.
