Steel Browser

WarnAudited by ClawScan on May 10, 2026.

Overview

This appears to be a real Steel.dev cloud-browser automation skill, but it needs review because unsafe script argument handling can execute local code and the proxy/CAPTCHA automation is high-risk.

Install only if you trust the Steel.dev provider and need cloud browser automation. Supervise browser actions, avoid sensitive accounts, do not use proxy/CAPTCHA features on sites where you lack permission, and ask the maintainer to fix the unsafe argument handling before allowing untrusted page content to drive the scripts.

Findings (7)

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 malicious page or task could cause the agent to pass a crafted browser-action argument that runs code on the user's machine, potentially reading files or environment secrets such as the Steel API key.

Why it was flagged

The script expands a tool argument directly into a Python heredoc as source code instead of passing it as data. The same style appears in multiple wrappers, so crafted selectors, text, URLs, or JS strings could break out of the string and run local Python.

Skill content
SELECTOR="${1:?Usage: click.sh SELECTOR}" ... page.click("""$SELECTOR""")
Recommendation

Rewrite wrappers to pass arguments via sys.argv, stdin, JSON, or environment variables with proper escaping; quote heredocs; and do not let untrusted web content choose raw tool arguments until this is fixed.

What this means

Using these features on third-party sites could violate site rules, trigger account bans, or enable abusive scraping or automated form activity.

Why it was flagged

The skill explicitly advertises proxy and CAPTCHA-solving features for difficult sites, which can be used to bypass anti-automation controls and is not limited to authorized testing or owned domains.

Skill content
Supports residential proxies and CAPTCHA solving. ... Start session (add --proxy --captcha for tough sites)
Recommendation

Use proxy and CAPTCHA options only for authorized automation, add domain/task allowlists where possible, and require explicit user confirmation before enabling them.

What this means

A webpage could influence the agent to click, type, or navigate in ways the user did not intend.

Why it was flagged

The example loop feeds page text and screenshots into an LLM that decides browser actions. This is expected for browser agents, but web pages can contain adversarial instructions that try to redirect the agent.

Skill content
CONTENT=$($SCRIPTS/get_content.sh) ... ACTION=$(echo "$CONTENT" | llm_decide /tmp/screen.png) ... click) ... type) ... navigate)
Recommendation

Treat webpage content as untrusted data, keep the user's original goal separate, and require confirmation for logins, payments, postings, submissions, downloads, or other high-impact actions.

What this means

Anyone who obtains the key may be able to use the user's Steel account resources or browser sessions.

Why it was flagged

The skill requires and uses a Steel API key to create and control browser sessions, even though the registry metadata does not declare required credentials. This is expected for the provider integration but should be clearly declared and protected.

Skill content
api_key = os.environ.get("STEEL_API_KEY") ... f"wss://connect.steel.dev?apiKey={api_key}&sessionId={session_id}"
Recommendation

Store the key securely, avoid logging it, revoke it if exposed, and update metadata to declare STEEL_API_KEY as a required credential.

What this means

Future package changes or a compromised dependency could affect what code runs locally.

Why it was flagged

Setup relies on unpinned third-party packages installed outside an install spec. This is common for SDK-based skills but leaves package versions and provenance less controlled.

Skill content
pip install steel-sdk playwright
Recommendation

Pin package versions, provide a lockfile or install spec, and install from trusted package sources.

What this means

Sensitive browsing or form entries could be exposed to the cloud browser provider or anyone with access to session viewing links.

Why it was flagged

Browser control occurs through Steel.dev's cloud browser connection. This is central to the skill, but it means browsing activity, screenshots, and form data may pass through a third-party provider.

Skill content
browser = _pw.chromium.connect_over_cdp(f"wss://connect.steel.dev?apiKey={api_key}&sessionId={session_id}")
Recommendation

Avoid using the skill for highly sensitive accounts unless the provider's privacy and security terms are acceptable, and protect viewer URLs.

What this means

A forgotten session may continue consuming provider resources or exposing an active browser session longer than intended.

Why it was flagged

The skill intentionally persists the active session ID and keeps remote sessions alive until released or timed out. This is disclosed and scoped to Steel session management.

Skill content
start_session.sh saves session ID to ~/.steel_state ... Sessions persist until release_session.sh or timeout
Recommendation

Run release_session.sh when finished, use short timeouts, and protect the ~/.steel_state file.