Browser Playwright Bridge

PassAudited by VirusTotal on May 11, 2026.

Overview

Type: OpenClaw Skill Name: browser-playwright-bridge Version: 1.1.0 The `scripts/browser-lock.sh` script contains critical shell injection vulnerabilities. The `CDP_PORT` environment variable, if controlled by an attacker, can lead to arbitrary command execution when used in `curl` commands (e.g., `curl ... "http://127.0.0.1:$CDP_PORT/json/version"`). Similarly, the `CHROME_BIN` environment variable, if controlled by an attacker, can lead to arbitrary command execution when the script attempts to execute the Chrome binary (e.g., `"$CHROME_BIN" ...`). These environment variables are explicitly documented as configurable in `SKILL.md`, making them direct attack vectors. While these are severe vulnerabilities allowing RCE, there is no clear evidence of intentional malicious behavior (e.g., data exfiltration, persistence, or stealth) within the provided files, aligning with a 'suspicious' classification rather than 'malicious'.

Findings (0)

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.

What this means

A Playwright script could act as you on any website where the shared OpenClaw browser profile is logged in.

Why it was flagged

The helper launches Chrome with the OpenClaw browser profile, which the docs state contains cookies/login state. This grants scripts access to existing authenticated sessions and is not bounded to particular sites or actions.

Skill content
USER_DATA_DIR="$HOME/.openclaw/browser/openclaw/user-data" ... --user-data-dir="$USER_DATA_DIR" ... --password-store=basic
Recommendation

Use a dedicated low-privilege browser profile for automation, review scripts before running them, and avoid using this with sensitive accounts unless the task and target sites are explicitly scoped.

What this means

If an unsafe or overly broad script is run, it can control the logged-in browser and the helper may also interrupt an existing Chrome session on the CDP port.

Why it was flagged

The lock manager can stop Chrome processes on the configured CDP port and run any Node script path supplied to it. That is central to the skill, but there is no allowlist or approval boundary for high-impact authenticated browser actions.

Skill content
kill_cdp_chrome ... node "$@" & ... kill -0 "$pid" 2>/dev/null && kill -9 "$pid"
Recommendation

Only run reviewed scripts from trusted workspace paths, add explicit approval before account-changing actions, and consider restricting the helper to a dedicated CDP port/profile.

What this means

The skill depends on local command execution, so it should only be used in workspaces where running helper commands is acceptable.

Why it was flagged

The template executes fixed local shell commands to discover the CDP port and probe localhost. This explains the static scan finding and appears purpose-aligned, not hidden exfiltration.

Skill content
const { execSync } = require('child_process'); ... execSync("ps aux | grep 'remote-debugging-port=' | grep -v grep", ...)
Recommendation

Keep the command discovery logic fixed, avoid adding user-controlled shell strings, and review modifications to generated Playwright scripts.

What this means

A cron job using this helper could keep performing browser actions with your login state after the original setup.

Why it was flagged

The skill documents scheduled use but does not itself install a cron job. Scheduled authenticated browser automation is still something users should notice.

Skill content
Use when: ... scheduling browser tasks in cron without CDP conflicts ... In cron tasks, call browser-lock.sh directly
Recommendation

Create scheduled jobs only intentionally, document their purpose, and regularly audit/remove cron entries that use the shared browser profile.

What this means

Installing Playwright adds third-party code to the workspace outside the skill's packaged files.

Why it was flagged

The setup asks for an unpinned npm package install even though there is no install spec. This is normal for a Playwright helper, but users should understand the dependency source.

Skill content
cd <workspace> && npm install playwright
Recommendation

Install dependencies from trusted registries, consider pinning Playwright versions, and review package-lock changes in sensitive environments.