Back to skill

Security audit

CDP Bridge MCP Browser Control

Security checks for vulnerabilities and agentic risk

Overview

The skill honestly describes browser control, but it gives an agent broad access to real logged-in browser sessions without enough scoping or consent guidance.

Install only if you intentionally want an agent to control a real browser profile. Use a dedicated browser profile without unrelated logged-in accounts, avoid cookie access unless strictly necessary, confirm any JavaScript/click/navigation action first, and prefer a pinned reviewed cdp-bridge version instead of `@latest`.

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

Error
Location
SKILL.md:112
Finding
Unpinned Execution of a Mutable Third-Party Package## Vulnerability Details **File Location**: `SKILL.md`, lines 112-115 **Vulnerability Type**: Supply-chain risk from an unpinned executable dependency **Risk Level**: High ```powershell $env:Path = "C:\Users\Administrator\.local\bin;$env:Path" $env:UV_HTTP_TIMEOUT = "600" Start-Process -NoNewWindow -FilePath "uvx" -ArgumentList "cdp-bridge@latest","--transport","streamable-http","--port","8000","--ws-port","18765" ``` ### Technical Analysis The documented startup procedure directs `uvx` to resolve and execute `cdp-bridge@latest`. The `latest` selector is mutable, so the package executed in the future may differ from the package reviewed when this Skill was published. The project does not specify an exact dependency version, expected artifact hash, cryptographic signature, lockfile, or trusted package source. The launched bridge has access to powerful browser-control operations, including reading cookies and page content, executing JavaScript, taking screenshots, navigating authenticated tabs, and issuing raw Chrome DevTools Protocol commands. Consequently, dependency compromise would affect a high-trust component connected to real, potentially authenticated browser sessions. This finding is based on the unsafe dependency-resolution instruction. The audit did not identify evidence that the current upstream package is malicious. ### Attack Path 1. An attacker compromises the upstream package publisher account, package repository, distribution infrastructure, or a future release selected by the mutable `latest` tag. 2. A user follows the documented startup procedure. 3. `uvx` resolves and executes the attacker-controlled or unexpectedly modified package release. 4. The resulting process starts the MCP and WebSocket services and communicates with the browser extension. 5. The compromised process abuses its browser-control access to inspect pages or cookies, execute JavaScript or CDP commands, alter browser state, or transmit information within the permission ...[truncated 697 chars]
Remediation
## Remediation Suggestions 1. Replace `cdp-bridge@latest` with an exact, reviewed version that cannot silently move between releases. 2. Pin and verify the package artifact using a trusted lockfile, expected cryptographic hash, or signature-validation mechanism supported by the distribution system. 3. Configure `uvx` to use an explicitly trusted package index or an internally controlled mirror rather than relying on implicit repository configuration. 4. Review package contents and release provenance before each intentional upgrade; update the pinned version only after approval. 5. Run the bridge under a dedicated least-privileged account and restrict its filesystem and network access where practical. 6. Bind the MCP and WebSocket listeners exclusively to loopback, require authentication where supported, and prevent untrusted local processes from invoking browser-control operations. 7. Limit browser-extension access to dedicated browser profiles that do not contain unrelated sensitive sessions or credentials.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (14)

Vague Triggers

High
Confidence
95% confidence
Finding
The skill description uses broad activation language such as '控制浏览器', '读取网页内容', and '执行浏览器操作', which can match many ordinary browsing requests and cause the agent to invoke a powerful browser-control skill unnecessarily. Because this skill can access cookies, execute JavaScript, navigate authenticated sessions, and read page contents, over-broad routing materially increases the chance of unintended access to sensitive browser state.

Missing User Warnings

High
Confidence
97% confidence
Finding
The top-level description advertises sensitive capabilities including cookie reading and JavaScript execution but provides no warning that these actions can expose credentials, session data, personal content, or mutate state in the user's browser. Presenting these powers without privacy and consent guardrails normalizes dangerous operations and increases the risk of misuse or accidental overreach.

Vague Triggers

High
Confidence
96% confidence
Finding
The quick-start guidance repeats ambiguous trigger phrases and explicitly routes requests involving a logged-in real browser session to this skill without any boundary checks. In context, this is especially dangerous because the skill controls a real browser plugin and can operate within active authenticated sessions, so ambiguous invocation can lead to privacy-impacting actions on behalf of the user.

Missing User Warnings

High
Confidence
98% confidence
Finding
The instruction to use this skill for '已登录的真实浏览器会话' is highly sensitive because it implies operating inside active authenticated accounts, yet it includes no caution about modifying user state, reading private data, or triggering actions as the user. In this context, the omission is more dangerous than usual because the skill is specifically designed to bridge into a real local browser session rather than an isolated sandbox.

Missing User Warnings

High
Confidence
97% confidence
Finding
The tool list exposes a cluster of powerful primitives—cookie access, arbitrary JavaScript execution, screenshots, navigation, and batch commands—without any accompanying safety guidance, access restrictions, or user-consent requirements. Combined, these capabilities enable extraction of authenticated data, page manipulation, and broad browser automation, making the missing warnings and guardrails a meaningful security weakness.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The document explicitly exposes browser-control capabilities including cookie access, JavaScript execution, page scanning, navigation, and screenshots, but provides no warning, consent guidance, or data-handling constraints. In the context of a browser-control skill, this omission increases the risk of operators using the capability to access session tokens, private page contents, or other sensitive browsing data without clear safeguards.

Missing User Warnings

Medium
Confidence
84% confidence
Finding
The JavaScript execution example performs an actual DOM click, which can trigger state-changing actions such as form submission, purchases, account changes, or consent actions in the user's real browser. Because this skill controls a live browser, providing action-execution examples without safety warnings or approval boundaries increases the risk of unintended or unauthorized operations.

Missing User Warnings

Medium
Confidence
91% confidence
Finding
The example explicitly demonstrates reading browser cookies, which can expose session identifiers and other sensitive authentication material from a real user browser. In the context of a browser-control skill, this is more dangerous than a generic example because the skill is designed to access an already-authenticated real browser session, making credential and session theft a realistic abuse path.

Missing User Warnings

Medium
Confidence
94% confidence
Finding
The document describes tools that can read page contents, enumerate tabs, take screenshots, and retrieve cookies from a real user browser, but it does not warn about privacy-sensitive or credential-bearing data exposure. In the context of a browser-control skill, omission of these warnings increases the chance that an agent or user will access authentication tokens, personal data, or confidential business content without informed consent or adequate safeguards.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The documentation presents JavaScript execution and navigation as routine actions without warning that they can modify application state, submit forms, trigger purchases, log the user out, or generate network requests to external systems. Because this skill controls a real browser, these actions can have immediate real-world effects and can be abused for CSRF-like actions, unwanted workflow execution, or data exfiltration via injected scripts.

Natural-Language Policy Violations

Medium
Confidence
97% confidence
Finding
The natural-language strings in the file header and usage instructions are written only in Chinese, which imposes a specific language on users without offering a choice or documenting a justified locale restriction. The policy explicitly flags language or locale constraints when they are forced without user opt-in.

Natural-Language Policy Violations

Low
Confidence
86% confidence
Finding
The file presents all instructional content in Chinese and does not offer an alternative language or note that the locale is intentionally constrained. This can violate language/locale policy when users are not given a choice or informed of the restriction.

Missing User Warnings

Low
Confidence
88% confidence
Finding
The example decodes screenshot data and saves it as screenshot.png, which creates or overwrites a local file containing potentially sensitive page content. The markdown does not disclose this file-writing behavior or advise users to choose a safe path and handle captured data carefully.

Natural-Language Policy Violations

Low
Confidence
77% confidence
Finding
全文均以中文编写,未说明该技能是否仅面向中文用户,也未提供语言可选项或英文等替代说明。按照语言/locale 策略,若技能面向广泛用户而固定单一语言,可能构成缺少用户选择的语言限制。

Static analysis

No suspicious patterns detected.