Back to skill

Security audit

Temp Agent Browser

Security checks for vulnerabilities and agentic risk

Overview

This browser automation skill is coherent, but it needs review because it documents unpinned third-party installation and persistent authenticated browser state without enough safety guidance.

Install only if you are comfortable reviewing and trusting the upstream agent-browser package or pinning it yourself. Avoid using saved auth state for high-privilege accounts, protect any auth.json, screenshot, PDF, video, or trace files like sensitive data, and do not pass real passwords as plain command arguments unless you accept the exposure risk.

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:17
Finding

Unpinned Third-Party Installation and Source Build

Content
View full analysis

Vulnerability Details

File Location: SKILL.md:17-19, SKILL.md:24-27, and CONTRIBUTING.md:18
Vulnerability Type: Supply-chain exposure through mutable, unverified dependencies
Risk Level: Medium

Vulnerable Code

SKILL.md:17-19:

bash
npm install -g agent-browser
agent-browser install
agent-browser install --with-deps

SKILL.md:24-27:

bash
git clone https://github.com/vercel-labs/agent-browser
cd agent-browser
pnpm install
pnpm build

CONTRIBUTING.md:18:

bash
npm install -g agent-browser@latest

Technical Analysis

The documented installation procedures retrieve and execute mutable third-party content without pinning it to a reviewed package version, source commit, or verified integrity digest. The npm commands install either the registry's currently selected release or explicitly use the mutable latest tag. The source-build procedure clones the upstream repository's current default branch and then resolves dependencies without a project-provided lockfile or other reproducibility control.

npm package installation may execute package lifecycle scripts. Likewise, pnpm install, pnpm build, and the subsequent browser installation commands can execute code supplied by the upstream project or its transitive dependencies. Consequently, the code executed by users can differ from the code that was reviewed when this Skill was published.

The agent-browser install --with-deps operation may also install operating-system dependencies and can require elevated privileges, increasing the potential effect of a compromised upstream installer. The audited files do not themselves contain a malicious payload, and exploitation depends on compromise or malicious modification of an upstream package, repository, release tag, or dependency.

Attack Path

  1. An attacker compromises the agent-browser npm package, its maintainer account, the upstream repository, or ...[truncated 1378 chars]
Remediation
View remediation

Remediation Suggestions

  1. Pin the npm dependency to a specific, reviewed version rather than relying on an implicit current release or @latest:
    bash
    npm install -g agent-browser@<reviewed-version>
    
  2. Document the expected npm integrity digest and provide a verification procedure before installation.
  3. For source installations, pin the repository to a full reviewed commit hash:
    bash
    git clone https://github.com/vercel-labs/agent-browser
    cd agent-browser
    git checkout --detach <reviewed-full-commit-hash>
    
  4. Provide and enforce a reviewed lockfile so transitive dependency resolution is reproducible. Use frozen-lockfile installation where supported:
    bash
    pnpm install --frozen-lockfile
    
  5. Prefer signed releases or commits and instruct users to verify signatures before building.
  6. Remove the recommendation to install @latest during troubleshooting. Instead, identify a supported, security-reviewed version and update it through a controlled review process.
  7. Clearly separate ordinary user-level setup from operations that may require administrative access. Explain exactly what --with-deps changes and advise users to inspect the generated package-manager operations before granting elevation.
  8. Run installation and builds in a restricted environment where practical, with minimal filesystem access, no unnecessary secrets in the environment, and no administrative privileges.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Memory PoisoningPersistent Context Injection, Context Window Stuffing, Memory Manipulation
  • Rogue AgentSelf-Modification, Session Persistence
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (7)

Self-Modification

High
Category
Rogue Agent
Confidence
85% confidence
Finding

Skill modifies its own code, configuration, or behavior at runtime. Self-modification enables an agent to escalate privileges, disable safety constraints, or install persistent backdoors.

Content

Scanner excerpt · CONTRIBUTING.md (reported line 60)May include surrounding context.

md
## Adding New Commands to the Skill

Update SKILL.md when the upstream CLI adds new commands.
- Keep the Installation section
- Add new commands in the correct category
- Include usage examples

Context Window Stuffing

Medium
Category
Memory Poisoning
Confidence
85% confidence
Finding

Skill attempts to fill the context window with filler content, displacing legitimate instructions and safety constraints. This can degrade agent performance or bypass safety boundaries.

Content

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

agent-browser open # Navigate to page agent-browser snapshot -i # Get interactive elements with refs agent-browser click @e1 # Click element by ref agent-browser fill @e2 "text" # Fill input by ref agent-browser close # Close browser

text

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The documented command agent-browser set credentials user pass encourages passing secrets directly on the command line, where they may be exposed via shell history, process listings, audit logs, or agent transcripts. In an AI-agent environment, this materially increases the chance of credential disclosure beyond the immediate terminal session.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill documents saving and reloading browser session state (e.g. auth.json) without warning that the file may contain cookies, tokens, and authenticated session material. In an agent context, users may persist privileged sessions to disk and later expose them through reuse, leakage, or accidental inclusion in logs or artifacts.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
Confidence
94% confidence
Finding

The state load auth.json command explicitly enables reuse of persisted authenticated browser state. Without safeguards or warnings, an agent may load stale, overprivileged, or attacker-provided session artifacts, resulting in account takeover, unauthorized actions, or cross-task credential bleed.

Content

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

bash
agent-browser state save auth.json    # Save session state
agent-browser state load auth.json    # Load saved state

Example: Form submission

Session Persistence

Medium
Category
Rogue Agent
Confidence
94% confidence
Finding

The example workflow normalizes loading previously saved authentication state for later sessions, but does not warn that the state file can act as a bearer credential. In agent workflows this increases the risk of persistent session reuse, accidental sharing, or use of an authentication artifact outside its intended boundary.

Content

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

agent-browser wait --url "/dashboard" agent-browser state save auth.json

Later sessions: load saved state

agent-browser state load auth.json agent-browser open https://app.example.com/dashboard

text

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
79% confidence
Finding

The skill describes saving screenshots, PDFs, videos, traces, and session state to local files, but does not include any general warning that these commands write potentially sensitive browser contents to disk. For a browser automation skill, such artifacts can contain private page data, credentials, or user content.

Content

No source excerpt is available for this finding.