Back to skill

Security audit

chrome-relay-browser

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed local browser-control helper, but users should treat it as powerful because it can act inside an attached Chrome tab.

Install only if you intentionally want an agent to control an attached Chrome tab. Attach non-sensitive tabs when possible, avoid using it on banking, admin, or private account pages unless you explicitly need that, and treat the relay token like a password that grants browser-control access.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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)

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/ctl.js:143
Finding

JavaScript Injection Through Click and Fill Arguments

Content
View full analysis
Remediation
View remediation
{ const element = document.querySelector(${encodedSelector}); if (!element) throw new Error('Element not found'); element.value = ${encodedText}; })()` }); ``` Apply the same serialization approach to the `click` command. ]]>

T09 · Insecure Skill Coding Practices

Note
Location
scripts/ctl.js:121
Finding

Arbitrary File Overwrite Through Screenshot Output Path

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Memory PoisoningPersistent Context Injection, Context Window Stuffing, Memory Manipulation
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
Findings (8)

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
95% confidence
Finding

The skill requires sensitive environment-backed secrets (RELAY_TOKEN, RELAY_PORT) but does not declare an explicit tool scope such as permissions or allowed-tools. That omission weakens least-privilege boundaries and makes the skill's effective capabilities less visible to reviewers and users, increasing the chance of unintended secret access or unsafe invocation.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The trigger conditions are broad enough to match normal browser-assistance requests, causing the skill to activate in situations where direct browser control may not be necessary. In this skill's context, activation grants the ability to operate a live attached Chrome tab, so over-triggering increases the risk of unintended navigation, clicks, form entry, or script execution in the user's active session.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The description does not clearly warn users that the skill can control an already attached Chrome tab in their live browser session, including actions like navigation, clicking, screenshots, and JavaScript evaluation. Because this operates in the user's authenticated browsing context, insufficient disclosure can lead to high-impact unintended actions affecting privacy, accounts, or sensitive data.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The script reads a relay token from a local secrets file in the user's home directory and uses it to authenticate to a browser relay service. Even if this is intended for local browser control, it is still credential access and expands the skill's privilege beyond simple browser automation; a compromised or repurposed skill could silently reuse that token to control the user's attached Chrome tab.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The code accesses a relay token from a local secrets file without any user-facing notice in the tool itself that credentials are being consumed. In a skill ecosystem, undisclosed credential use is risky because users may believe they are granting only browser-control actions, while the skill is also retrieving an authentication secret that can be abused for persistent access to the relay.

Content

No source excerpt is available for this finding.

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 · scripts/ctl.js (reported line 101)May include surrounding context.

js
console.log('  url               - Get current URL');
    console.log('  evaluate <js>     - Execute JS');
    console.log('  click <selector>  - Click element');
    console.log('  fill <selector> <text> - Fill input');
    process.exit(1);
  }

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill exposes powerful browser actions including arbitrary JavaScript execution via Runtime.evaluate, DOM clicking, and form filling against an already attached user tab. In this context, that is especially dangerous because it operates on the user's live authenticated browser session, enabling account actions, data extraction, or transaction abuse if invoked unsafely or by a malicious higher-level prompt.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

All user-facing natural-language instructions in the file are in Chinese, with no indication that the user can choose another language. This may violate language/locale policy where skills should not force a specific language without user opt-in or clear justification.

Content

No source excerpt is available for this finding.