Back to skill

Security audit

Open Browser Use(OBU)

Security checks for vulnerabilities and agentic risk

Overview

The skill is coherent and disclosed, but it guides installation of a privileged Chrome automation stack using mutable, unverified external packages and release artifacts.

Install only if you trust the Open Browser Use publisher and release channels. Prefer pinned versions and a Chrome Web Store release when available; avoid the beta ZIP path unless you can verify the exact release source and checksum. Treat the connected Chrome profile as sensitive, and confirm before letting an agent read history, use clipboard contents, upload files, submit forms, make purchases, delete data, or act on logged-in sites.

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 (2)

T08 · Insecure Dependencies

Warning
Location
references/installation.md:13
Finding
Unpinned Third-Party Package Installations## Vulnerability Details **File Location**: `references/installation.md:13-20`; `references/sdk-and-protocol.md:39-44` **Vulnerability Type**: Unpinned third-party dependencies **Risk Level**: Medium ### Vulnerable Code Snippets From `references/installation.md:13-20`: ```sh Use one of the supported package routes: ```sh npm install -g open-browser-use ``` ```sh brew install iFurySt/open-browser-use/open-browser-use ``` ``` From `references/sdk-and-protocol.md:39-44`: ```sh Install the SDK package from the package registry for your runtime: ```sh npm install open-browser-use-sdk pip install open-browser-use-sdk go get github.com/ifuryst/open-codex-browser-use/packages/open-browser-use-go ``` ``` ### Technical Analysis The installation instructions do not pin an exact npm or Python package version, Go commit or release tag, or Homebrew formula revision. Consequently, the installed artifact depends on the mutable state of external package registries and repositories at installation time. This is particularly security-sensitive because Open Browser Use is designed to install a native messaging host and interact with a privileged Chrome extension. The documented capabilities include Chrome tab control, history access, Chrome DevTools Protocol execution, downloads, local file selection, and clipboard operations. If an upstream package, maintainer account, release process, registry namespace, or repository is compromised, users following these commands could install a modified version without the reviewed Skill files changing. npm package lifecycle behavior and other package installation mechanisms may also execute package-controlled installation logic. ### Attack Path 1. An attacker compromises an upstream maintainer account, package registry entry, repository, or package publication process. 2. The attacker publishes a malicious version under one of the documented package identities or modifies the version resolved by an unpinned installation. 3. A us ...[truncated 1103 chars]
Remediation
## Remediation Suggestions 1. Pin npm and Python dependencies to exact, reviewed versions: ```sh npm install -g open-browser-use@<reviewed-version> npm install open-browser-use-sdk@<reviewed-version> pip install open-browser-use-sdk==<reviewed-version> ``` 2. Pin the Go dependency to a reviewed semantic version or immutable commit: ```sh go get github.com/ifuryst/open-codex-browser-use/packages/open-browser-use-go@<reviewed-version-or-commit> ``` 3. Document the expected Homebrew formula version and verify the resolved formula and artifact before installation. 4. Publish SHA-256 checksums or cryptographic signatures for release artifacts and require verification before setup. 5. Document the canonical package-registry namespaces, repository URL, publisher identities, and expected signing keys. 6. Use lockfiles and package-manager integrity metadata in reproducible integrations. 7. Recommend installation under least privilege and prohibit unnecessary use of elevated privileges. 8. Establish a dependency review and update process so pinned versions are upgraded only after source and artifact verification.

T08 · Insecure Dependencies

Warning
Location
references/installation.md:45
Finding
Mutable Latest Extension ZIP Download Without Documented Integrity Verification## Vulnerability Details **File Location**: `references/installation.md:45-51` **Vulnerability Type**: Mutable external release artifact **Risk Level**: Medium ### Vulnerable Code Snippet From `references/installation.md:45-51`: ```sh While the Chrome Web Store item is unavailable or pending review, use the release ZIP path: ```sh open-browser-use setup beta ``` This downloads the latest keyed `open-browser-use-chrome-extension-*.zip` from GitHub Releases and registers the native host for that stable extension id. It opens `chrome://extensions/` and reveals the ZIP in Finder or the system file manager only when the browser extension is missing or older than the CLI-expected version. Ask the user to enable Developer mode and drag that ZIP into the Chrome extensions page when setup prints that next step. ``` ### Technical Analysis The beta setup procedure retrieves the “latest” extension ZIP from GitHub Releases. The referenced artifact is mutable from the Skill reviewer's perspective because its resolved version and contents can change without any modification to this repository. The documentation does not instruct the user to verify a pinned release version, cryptographic signature, or expected digest before manually installing the extension in Developer mode. A compromised GitHub account, release workflow, repository, or release asset could therefore substitute a malicious extension. Registration for a stable extension ID does not independently establish that the downloaded ZIP has the expected contents. The risk is elevated by the extension's documented access to privileged browser functionality, including debugger/CDP operations, history, downloads, tab management, clipboard helpers, and broad host access. ### Attack Path 1. An attacker compromises the upstream GitHub repository, maintainer account, release workflow, or release asset distribution process. 2. The attacker publishes or replaces the release artifact selected as the latest `open-brows ...[truncated 1306 chars]
Remediation
## Remediation Suggestions 1. Replace the mutable “latest” download with a specific, reviewed extension version. 2. Publish an expected SHA-256 digest for the exact ZIP and instruct users to verify it before installation. 3. Cryptographically sign extension release artifacts and document signature verification using a pinned, independently distributed public key. 4. Pin GitHub release downloads to immutable release tags and asset names rather than resolving the latest release dynamically. 5. Where supported, verify release provenance through signed tags, GitHub artifact attestations, or an equivalent supply-chain framework. 6. Make setup fail closed if the downloaded artifact's version, digest, signature, extension ID, or provenance does not match the expected values. 7. Display the resolved version, source URL, and verified digest before opening the extension installation page. 8. Prefer the reviewed Chrome Web Store distribution channel when available, while retaining explicit version and publisher verification guidance.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (3)

Instruction Override

High
Category
Prompt Injection
Content
open-browser-use setup beta
```

This downloads the latest keyed `open-browser-use-chrome-extension-*.zip` from GitHub Releases and registers the native host for that stable extension id. It opens `chrome://extensions/` and reveals the ZIP in Finder or the system file manager only when the browser extension is missing or older than the CLI-expected version. Ask the user to enable Developer mode and drag that ZIP into the Chrome extensions page when setup prints that next step.

Repair only the native host manifest:
Confidence
70% confidence
Finding
This pattern attempts to override system instructions or ignore safety constraints. Without LLM analysis, manual review is recommended.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
(whether that profile's host is currently reachable). JSON output is
   available via `--json`.

2. If exactly one profile is installed and connected, proceed without asking.
   If it is installed but not connected, ask the user to open Chrome on that
   profile before running browser commands.
Confidence
75% confidence
Finding
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Missing User Warnings

Medium
Confidence
94% confidence
Finding
This reference explicitly exposes powerful browser-control capabilities including user history access, clipboard read/write, downloads, arbitrary tab claiming, and direct CDP execution, but it does not pair those capabilities with clear consent, authorization, or privacy-boundary guidance. In an agent skill, that omission is dangerous because downstream agents may treat these operations as routine and perform privacy-sensitive actions on real user browser state without explicit user approval or scope checks.

Static analysis

No suspicious patterns detected.