Back to skill

Security audit

浏览器CLI工具-免费版

Security checks for vulnerabilities and agentic risk

Overview

This browser automation skill is not clearly malicious, but it needs review because it encourages account actions, scheduled browser automation, and an unpinned global npm install without enough boundaries.

Review before installing. Use this only in an isolated account, container, or browser profile; avoid storing real credentials or session cookies where unattended jobs can reuse them; do not schedule cron tasks unless you explicitly want recurring account actions; and prefer a pinned, local `agent-browser` install from a verified source.

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

Unpinned Global Installation of a Third-Party npm Package

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 151-152; repeated at lines 264-265 and referenced at lines 290-291
Vulnerability Type: Unpinned and globally installed third-party dependency
Risk Level: Medium

Vulnerable Code

bash
npm install -g agent-browser
agent-browser install

The dependency table also directs users to perform the same installation:

markdown
| agent-browser | CLI tool | Required | `npm install -g agent-browser` |
| Chromium | Runtime | Required | `agent-browser install` automatic download |

Technical Analysis

The Skill directs the Agent or user to install the latest available version of agent-browser globally. It does not specify an exact reviewed version, package integrity value, verified publisher, canonical repository, or lockfile.

An npm installation may execute package lifecycle scripts such as preinstall, install, or postinstall. These scripts run with the privileges of the user performing the installation. Because no version is pinned, the effective package contents can change after the Skill itself has been reviewed.

The subsequent agent-browser install command downloads an additional browser runtime. The Skill does not document a trusted download source or any checksum or signature validation for that runtime.

Global installation also exceeds the minimum scope necessary for browser automation. A project-local, pinned dependency in a restricted execution environment would generally be sufficient and would reduce the effect on the host system.

Attack Path

  1. An attacker compromises the npm package, its publisher account, the package distribution chain, or a future package release.
  2. The attacker adds malicious npm lifecycle code or modifies the runtime download behavior.
  3. A user or tool-enabled Agent follows the Skill instructions and runs npm install -g agent-browser.
  4. npm retrieves the current attacker-controlled ...[truncated 1427 chars]
Remediation
View remediation

Remediation Suggestions

  1. Pin agent-browser to an exact version that has been reviewed:

    bash
    npm install --save-exact agent-browser@<reviewed-version>
    
  2. Prefer a project-local installation over npm install -g:

    bash
    npm install --save-exact agent-browser@<reviewed-version>
    npx agent-browser install
    
  3. Commit and enforce a lockfile with npm integrity metadata. Use npm ci for reproducible installations.

  4. Document the canonical package name, expected publisher, source repository, and package provenance so users can detect dependency confusion or publisher substitution.

  5. Verify downloaded browser runtimes using vendor signatures or documented cryptographic checksums.

  6. Disable npm lifecycle scripts during installation where compatible:

    bash
    npm ci --ignore-scripts
    

    If lifecycle scripts are required, inspect and explicitly approve them before execution.

  7. Run dependency installation and browser automation in a container, sandbox, or restricted operating-system account with no unnecessary access to secrets or sensitive files.

  8. Do not recommend elevated execution such as sudo npm install -g. Clearly state that installation must use the least-privileged account possible.

  9. Add periodic dependency review and vulnerability scanning, while ensuring upgrades remain explicit rather than automatically selecting an unreviewed latest release.

Vulnerability Patterns
  • Rogue AgentSelf-Modification, Session Persistence
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (7)

Vague Triggers

High
Category
Not specified by scanner
Confidence
96% confidence
Finding

The trigger condition is overly broad and inconsistent with the real purpose of the skill, encouraging activation for general data-analysis tasks. In agent environments, broad routing criteria are dangerous because they can cause a privileged skill with browser and exec access to be selected in situations that do not require those capabilities.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The description states '支持中文交互' and presents the skill as operating in Chinese, but does not offer user opt-in or indicate that the locale restriction is necessary for a region-specific use case. This can conflict with organizational language/locale policy when users have not chosen Chinese as their interaction language.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The trigger-condition text says the skill should be used for data analysis, report generation, statistical insights, and visualization, which conflicts with the rest of the document describing browser automation. This kind of scope confusion can cause an agent to invoke the skill in unrelated contexts and then execute browser or shell-backed actions where the user expected a passive analytics tool.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The examples include automated sign-in, form submission, and cron-scheduled account actions without warning about account integrity, unintended submissions, anti-bot policies, or terms-of-service implications. That omission can normalize risky automation and lead users or agents to perform persistent actions on third-party sites without adequate consent or review.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
Confidence
86% confidence
Finding

The cron example encourages persistent scheduled execution of browser actions, which can preserve authenticated behavior across repeated runs and create unattended account interactions. In the context of a skill with browser automation and exec guidance, this increases the risk of unauthorized repeated actions, misuse of stored session state, and hard-to-notice long-term automation.

Content

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

EOF

加入 crontab(每天 9:00 执行)

crontab -e

text

## 快速开始

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill is advertised as a browser automation CLI, but the later 'core functions' section broadens it to file processing, API integration, and system command execution. Hidden or expanded capability claims increase the chance that an agent grants or uses more dangerous powers than the user intended, especially because the skill already permits exec and read tools.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
85% confidence
Finding

L295-L296声明该 Skill“无需额外API Key”,但L321又专门要求“API密钥通过环境变量配置”,表明文档对是否需要密钥给出了相互矛盾的指导。虽然未展示具体代码,但这是文档内部对技能使用前提和安全操作的直接冲突。

Content

No source excerpt is available for this finding.