T08 · Insecure Dependencies
Error
- Location
- references/agent-guide.md:35
- Finding
- Unattended and Unpinned Supply-Chain Updates<![CDATA[ ## Vulnerability Details **File Location**: `references/agent-guide.md:35-57`, `references/agent-guide.md:74-96`, and `SKILL.md:45-57` **Vulnerability Type**: T08: Insecure Dependencies **Risk Level**: High The skill configures a recurring process that installs the mutable `latest` release of Clawdbot and automatically updates every installed skill without version pinning, integrity verification, staging, or an approval gate. ### Vulnerable Code From `references/agent-guide.md:35-57`: ```bash # Update Clawdbot log "Updating Clawdbot..." if command -v npm &> /dev/null && npm list -g clawdbot &> /dev/null; then npm update -g clawdbot@latest 2>&1 | tee -a "$LOG_FILE" elif command -v pnpm &> /dev/null && pnpm list -g clawdbot &> /dev/null; then pnpm update -g clawdbot@latest 2>&1 | tee -a "$LOG_FILE" elif command -v bun &> /dev/null; then bun update -g clawdbot@latest 2>&1 | tee -a "$LOG_FILE" else log "Running clawdbot update (source install)" clawdbot update 2>&1 | tee -a "$LOG_FILE" || true fi # Run doctor for migrations log "Running doctor..." clawdbot doctor --yes 2>&1 | tee -a "$LOG_FILE" || true # Capture new version CLAWDBOT_VERSION_AFTER=$(clawdbot --version 2>/dev/null || echo "unknown") # Update skills log "Updating skills via ClawdHub..." SKILL_OUTPUT=$(clawdhub update --all 2>&1) || true ``` The automatic execution is configured in `references/agent-guide.md:74-96`: ```bash clawdbot cron add \ --name "Daily Auto-Update" \ --cron "0 4 * * *" \ --tz "America/Los_Angeles" \ --session isolated \ --wake now \ --deliver \ --message "Run the daily auto-update routine: 1. Check and update Clawdbot: - For npm installs: npm update -g clawdbot@latest - For source installs: clawdbot update - Then run: clawdbot doctor --yes 2. Update all skills: - Run: clawdhub update --all 3. Report back with: - Clawdbot version before/after - List of skills that were updated (name + old version → new version) - Any ...[truncated 3324 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. **Do not install mutable releases automatically** - Replace `@latest` with an explicitly approved version. - Resolve source updates to reviewed commit hashes or signed release tags. - Maintain an allowlist of approved skill names and versions. 2. **Separate checking from installation** - Schedule `clawdhub update --all --dry-run` or an equivalent version check. - Send the proposed version changes to the user. - Require explicit approval before applying core or skill updates. 3. **Verify provenance and integrity** - Validate cryptographic release signatures or registry provenance attestations. - Compare downloaded artifacts against trusted checksums. - Restrict package and skill downloads to authenticated, explicitly configured registries. - Verify publisher identity and reject unexpected ownership changes. 4. **Stage updates before production use** - Install updates in a sandbox or test profile first. - Run security scans and functional tests against the exact artifacts that will be deployed. - Promote only the tested immutable versions. 5. **Reduce installation-time execution** - Disable package lifecycle scripts where supported and operationally feasible. - Review any required lifecycle scripts before permitting them. - Prevent newly updated skills from receiving sensitive tools until they have been reviewed. 6. **Apply least privilege** - Run the updater under a dedicated unprivileged account. - Avoid `sudo` and unnecessary write access to system-wide locations. - Limit filesystem, credential, environment-variable, and network access for update sessions. 7. **Support detection and rollback** - Preserve the previous known-good package and skill versions. - Record immutable versions, checksums, publishers, and update results in an append-only audit log. - Alert on unexpected publisher, registry, dependency, permission, or lifecycle-script changes. - A ...[truncated 350 chars]
