T06 · System Persistence
- Location
scripts/setup-cdp.sh:89- Finding
Persistent Chrome CDP Service Exposes Authenticated Browser Sessions Across Logins
- Content
View full analysis
"$PLIST_PATH" << PLIST Label com.openclaw.chrome-cdp ProgramArguments $CHROME_PATH --remote-debugging-port=$CDP_PORT --user-data-dir=$PROFILE_DIR --no-first-run --no-default-browser-check --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-renderer-backgrounding RunAtLoad KeepAlive Crashed StandardOutPath /tmp/chrome-cdp.log StandardErrorPath /tmp/chrome-cdp.err PLIST launchctl unload "$PLIST_PATH" 2>/dev/null || true launchctl load "$PLIST_PATH" 2>/dev/null || true echo "✅ LaunchAgent created (auto-starts on login, restarts on crash)" fi ``` ### Technical Analysis The setup script creates and immediately loads a per-user macOS LaunchAgent. The `RunAtLoad` setting starts the CDP-enabled Chrome instance whenever the user logs in, while `KeepAlive` with `Crashed` restarts it after an unexpected termination. Launching Chrome during the current setup session is necessary to establish a CDP connection. Installing a cross-session startup service is not the minimum privilege or ...[truncated 2423 chars]- Remediation
View remediation
