T05 · Unauthorized Access and Privilege Escalation
- Location
scripts/recover.sh:67- Finding
Broad Process Matching Can Terminate Unrelated or Personal Browsers
- Content
View full analysis
/dev/null; then KILLED_COUNT=$((KILLED_COUNT + 1)) echo " Killed processes matching: $proc" >&2 fi done ``` ### Technical Analysis The script uses `pkill -f` with generic browser names. The `-f` option matches against the entire process command line, so any process containing strings such as `chrome` or `chromium` can be terminated. The implementation does not perform the safeguards required by the project's own documentation: - It does not verify that the process is owned by the current user. - It does not check for an OpenClaw-specific `--user-data-dir`. - It does not confirm that the process uses an OpenClaw debugging port. - It does not associate the process with the current Agent or workspace. - It does not inspect or log individual PIDs before termination. This directly contradicts `SKILL.md:93-102` and `references/safety.md:11-28`, which require ownership and profile verification and explicitly prohibit broadly killing personal browser processes. The problem is amplified because running `recover.sh` without arguments enables full recovery by default, including this destructive operation. ### Attack Path 1. A user has a personal Chrome or Chromium session running, or another Agent runs a browser on the same host. 2. An OpenClaw browser operation fails for any reason. 3. The Agent follows the documented workflow and invokes `scripts/recover.sh`. 4. The script executes `pkill -f` against generic browser names. 5. The personal or unrelated browser process matches one of those strings and is terminated without verification or confirmation. An atta ...[truncated 914 chars]- Remediation
View remediation
