Destructive delete command
- Finding
- Documentation contains a destructive delete command without an explicit confirmation gate.
Security checks across static analysis, malware telemetry, and agentic risk
This is a coherent OpenClaw uninstaller, but its host-run scheduler can build shell commands from notification text, creating a command-execution risk.
Install only if you intentionally want to remove OpenClaw. Prefer running without notification options until the scheduler quoting issue is fixed, verify the target OpenClaw paths first, and back up anything important under your OpenClaw state/profile directories.
VirusTotal findings are pending for this skill version.
Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.
A malicious or malformed email address or ntfy topic supplied through the chat flow could cause arbitrary commands to run on the host during the scheduled uninstall.
User-provided notification values are placed into a shell command string and executed with bash -c on the host. Values containing a single quote or shell syntax could break out of the intended argument and run commands beyond the uninstall workflow.
[[ -n "$NOTIFY_EMAIL" ]] && EXTRA_ARGS+=(--notify-email "$NOTIFY_EMAIL") ... ARG_STR="$ARG_STR '$a'" ... CMD="sleep $DELAY && '$UNINSTALL_SCRIPT' $ARG_STR" ... /bin/bash -c "$CMD"
Do not use notification options from untrusted chats. The maintainer should validate email/topic values and avoid bash -c string construction, using safe argument arrays or robust shell escaping instead.
Running the uninstall will remove OpenClaw data and profiles, and a misconfigured state directory could remove unintended local data.
The script performs irreversible deletions of OpenClaw state and profile directories. That matches the stated uninstall purpose, but users should verify the target paths, especially if OPENCLAW_STATE_DIR is customized.
STATE_DIR="${OPENCLAW_STATE_DIR:-$HOME/.openclaw}" ... rm -rf "$STATE_DIR" ... for d in "$HOME"/.openclaw-*; do ... rm -rf "$d"Run the read-only verification first, back up important OpenClaw data, and confirm OPENCLAW_STATE_DIR and profile paths before uninstalling.
Once scheduled, the uninstall may continue even after the chat session disconnects, making accidental approval harder to reverse.
The skill intentionally schedules a delayed background uninstall so it can continue after the gateway/session disconnects. This is disclosed and purpose-aligned, but it is still persistent background activity.
CMD="sleep $DELAY && '$UNINSTALL_SCRIPT' $ARG_STR" ... systemd-run --user --onetime --unit=openclaw-uninstall ... || (nohup bash -c "$CMD" >> "$LOG_FILE" 2>&1 &)
Only confirm scheduling if you truly want a complete uninstall; if scheduled by mistake, immediately cancel the launchd/systemd/nohup job before the delay expires.
It is harder to confirm that the published package corresponds to a trusted upstream repository.
For a skill that asks the agent to run host-level cleanup scripts, missing registry source and homepage metadata reduces provenance transparency, even though the submitted script contents are visible here.
Source: unknown; Homepage: none
Verify the publisher and compare the scripts with a trusted source before allowing host-level uninstall actions.