Back to skill

Security audit

Browser Automation CLI

Security checks for vulnerabilities and agentic risk

Overview

The skill matches browser automation, but it asks users to install an unaudited global CLI and can run sensitive browsing workflows with remote mode, persistent sessions, and automatic downloads without strong user controls.

Review this carefully before installing. Only use it in a sandbox or trusted project, verify the actual package files before running npm install or npm link, avoid persistent browser profiles for sensitive accounts, prefer local-only mode unless you intentionally want Browserbase to process browsing data, and confirm before submitting forms, logging in, or downloading files.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:21
Finding

Unauditable Dependency Installation and Global CLI Registration

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 21–24; related instructions in setup.json, lines 26–29
Vulnerability Type: Insecure dependency and installation workflow
Risk Level: Medium

Complete Code Snippet:

markdown
## Setup (First Time Only)

Check `setup.json` in this directory. If `setupComplete: false`:

```bash
npm install    # Install dependencies
npm link       # Create global 'browser' command
text

Related setup configuration:

```json
"setupInstructions": [
  "1. Run: npm install (this will automatically build TypeScript)",
  "2. Run: npm link (this creates the global 'browser' command)",
  "3. (RECOMMENDED) Export ANTHROPIC_API_KEY: export ANTHROPIC_API_KEY='your-api-key-here' (check if already exported)",
  "   OR alternatively create .env file: cp .env.example .env and edit it to add your API key",

Technical Analysis

The Skill directs the Agent to run npm install and then register a globally accessible browser command with npm link. However, the audited artifact contains no package.json, package lockfile, TypeScript source files, build configuration, or .env.example. The implementation claimed in REFERENCE.md, including src/cli.ts, is also absent.

As a result, the audit cannot determine:

  • Which packages and versions would be installed.
  • Whether npm lifecycle hooks such as preinstall, install, postinstall, or prepare would execute.
  • Which executable would be exposed globally as browser.
  • Whether the executable safely handles API keys, cookies, screenshots, downloads, and browsing data.
  • Whether installed dependencies are integrity-pinned and reproducible.

Running npm install can execute package lifecycle scripts with the invoking user's privileges. Running npm link then modifies the user's global npm command environment so subsequent legitimate-looking browser calls resolve to the linked, unaudited implemen ...[truncated 1884 chars]

Remediation
View remediation

Remediation Suggestions

  1. Include all referenced implementation and installation files in the reviewed package:
    • package.json
    • An integrity-locked lockfile
    • src/cli.ts and all other source files
    • Build configuration
    • .env.example
    • Relevant tests
  2. Pin exact dependency versions and integrity hashes rather than accepting unbounded or floating versions.
  3. Review and minimize npm lifecycle scripts. Disable them during installation where feasible with npm install --ignore-scripts, then run only a separately reviewed build step.
  4. Prefer a project-local executable invoked through an explicit trusted path instead of npm link.
  5. Require explicit user approval before installing dependencies or modifying globally resolved commands.
  6. Verify the executable target declared in the package's bin field before registration.
  7. Run installation and browser automation in a sandbox with restricted filesystem, environment-variable, and network access.
  8. Use an isolated, nonpersistent browser profile for sensitive operations and apply URL or network allowlists to block unintended access to localhost and internal services.
  9. Ensure .env files, browser profiles, screenshots, and downloads have restrictive permissions and are excluded from source control.
  10. Add automated dependency scanning, provenance verification, and reproducible-build checks before distribution.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (11)

Missing User Warnings

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The login example shows entering credentials, navigating authenticated areas, and notes that the Chrome profile may preserve session cookies between runs, but does not warn about credential sensitivity or persistence of authenticated-session artifacts. This increases the risk of credential exposure, unintended account actions, and session leakage across tasks or users, especially because browser automation often executes with broad access and reusable local state.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill does not warn users that browser activity may be automatically routed to a remote Browserbase service when credentials are present. Because browsing sessions can contain sensitive URLs, page data, authentication state, and user-entered content, the absence of disclosure materially increases the risk of unintended data exposure to a third party.

Content

No source excerpt is available for this finding.

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · SKILL.md (reported line 14)May include surrounding context.

md
### First: Environment Selection (Local vs Remote)

The skill automatically selects between local and remote browser environments:
- **If Browserbase API keys exist** (BROWSERBASE_API_KEY and BROWSERBASE_PROJECT_ID in .env file): Uses remote Browserbase environment
- **If no Browserbase API keys**: Falls back to local Chrome browser
- **No user prompting**: The selection happens automatically based on available configuration

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · setup.json (reported line 17)May include surrounding context.

json
### First: Environment Selection (Local vs Remote)

The skill automatically selects between local and remote browser environments:
- **If Browserbase API keys exist** (BROWSERBASE_API_KEY and BROWSERBASE_PROJECT_ID in .env file): Uses remote Browserbase environment
- **If no Browserbase API keys**: Falls back to local Chrome browser
- **No user prompting**: The selection happens automatically based on available configuration

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · setup.json (reported line 29)May include surrounding context.

json
### First: Environment Selection (Local vs Remote)

The skill automatically selects between local and remote browser environments:
- **If Browserbase API keys exist** (BROWSERBASE_API_KEY and BROWSERBASE_PROJECT_ID in .env file): Uses remote Browserbase environment
- **If no Browserbase API keys**: Falls back to local Chrome browser
- **No user prompting**: The selection happens automatically based on available configuration

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The example explicitly demonstrates filling and submitting a real contact form with personal data, but provides no warning that the action transmits data to an external service and may be irreversible. In a browser-automation skill, examples strongly shape agent behavior, so this can normalize making side-effecting web requests without confirming user intent or warning about privacy implications.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The download example states that files are automatically written to ./agent/downloads/ without warning the user that local storage will be modified. This can lead to unintended disk writes, retention of sensitive or malicious files, and downstream risks if users assume the action is read-only browsing rather than a state-changing operation.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill explicitly documents that downloads start automatically with no dialog and are saved to a local directory, but it does not require an explicit user confirmation step before initiating a download. In a browser automation skill with full network access and access to arbitrary websites, this can cause unreviewed files to be written to disk, increasing risk of malware delivery, storage abuse, or accidental handling of sensitive/export-controlled content.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The description says to use the skill when the user asks to 'browse websites, navigate web pages, extract data from websites, take screenshots, fill forms, click buttons, or interact with web applications.' Several of these phrases are broad everyday requests and the file does not provide narrower trigger constraints or negative examples, so the activation boundary is unclear.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The skill silently switches from local browsing to a third-party remote Browserbase environment whenever API credentials are present. That changes the trust boundary and can cause visited URLs, page contents, cookies, form inputs, and screenshots to be processed off-host without explicit user awareness or consent.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

This manifest instructs users to export ANTHROPIC_API_KEY or store it in a .env file, which involves handling sensitive credentials. The text provides setup steps but does not include any caution about protecting the key, avoiding committing .env files, or treating the value as secret.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.