Back to skill

Security audit

Omnibot Skills

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed browser-automation integration, but it needs review because it operates in live logged-in browser sessions, uses a mutable global CLI install, and documents automated captcha-solving workflows.

Review this before installing. Use a dedicated browser profile and test accounts where possible, avoid personal email, banking, admin, or publishing sessions unless explicitly needed, and require human approval before posting, submitting, purchasing, deleting, or changing account data. Pin and verify the Omnibot CLI package if you can, and treat network logs, screenshots, clipboard data, cookies, and authenticated page content as sensitive.

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
README.md:144
Finding

Unpinned Global npm Package Automatically Installs a Platform-Specific Binary

Content
View full analysis

Vulnerability Details

File Location: README.md, lines 144-152
Vulnerability Type: Supply-chain exposure through an unpinned global dependency and automatically installed native binary
Risk Level: Medium

Complete Code Snippet

markdown
### 1. Install the CLI

Install Omnibot CLI globally via npm (recommended):

```bash
npm install -g @omniaibot/omnibot

It auto-detects your platform and installs the corresponding binary. After installation, run omnibot doctor to verify.

text

Equivalent installation instructions also appear in the localized README files, including `README_de.md`, `README_es.md`, `README_fr.md`, `README_ja.md`, `README_ko.md`, and `README_zh.md`.

### Technical Analysis

The installation command does not pin an exact package version or require verification of the downloaded package and native binary. Consequently, npm resolves the package version available under the package name at installation time. The selected package may execute npm lifecycle logic and automatically install a platform-specific executable.

This creates a mutable supply-chain trust boundary: the code ultimately executed by users can change after the Skill documentation has been audited. A compromise of the npm publisher account, package release process, dependency graph, registry response, or native-binary distribution channel could introduce arbitrary code without modifying this repository.

Global installation increases exposure because the package is installed into the user's global npm environment. The documented automatic daemon startup also means that an installed executable may subsequently run when the user invokes an Omnibot browser command.

### Attack Path

1. An attacker compromises the npm package publisher, release pipeline, dependency chain, or platform-binary distribution mechanism.
2. The attacker publishes a malicious package version or substitutes a malicious native binary.
3. A user follows the documented command:
   `npm insta
...[truncated 1247 chars]
Remediation
View remediation

Remediation Suggestions

  1. Pin the installation command to a reviewed, exact package version rather than resolving the latest release:

    bash
    npm install -g @omniaibot/omnibot@2.4.1
    
  2. Publish cryptographic checksums or signatures for every platform-specific binary and verify them before installation or execution.

  3. Document the expected npm registry, package publisher identity, signing keys, binary download domains, and verification procedure.

  4. Use reproducible release processes and publish provenance attestations, such as npm provenance and SLSA-compatible build metadata.

  5. Minimize or eliminate npm lifecycle scripts. If lifecycle scripts are required, document their behavior and make their source auditable.

  6. Prefer a least-privileged, isolated installation instead of a global installation where practical. Do not recommend running npm or Omnibot installation commands with administrator or root privileges.

  7. Pin transitive dependencies through a reviewed lockfile in the package build process and continuously scan the package and native binaries for supply-chain changes.

  8. Require explicit user approval before first daemon startup and clearly document the executable path, process behavior, listening interface, and shutdown procedure.

Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • 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
Findings (20)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The README explicitly promotes operation in a real Chromium browser using real cookies, extensions, and user sessions, but does not warn users that an agent may access authenticated data or perform account-affecting actions. In a browser-automation skill, that omission materially increases the chance of unsafe deployment because operators may expose sensitive sessions to an agent without understanding the privacy and integrity risks.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The examples showcase auto-login, backend analytics extraction, court document review, and one-click publishing, all of which are real, potentially destructive or privacy-impacting operations, yet no caution is given about consent, authorization, or irreversible actions. In this skill's context, the absence of warnings is more dangerous because the entire product is designed to let agents act inside a live user browser, making accidental posting, data exfiltration, or misuse of privileged sessions plausible.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The README explicitly promotes operation against a real browser using real cookies, real extensions, and real user sessions, which materially increases the chance that an agent can access sensitive authenticated data or perform actions with the user's account authority. While this is core functionality rather than overtly malicious behavior, the lack of prominent warnings, consent guidance, and account-safety limitations makes misuse and accidental privacy-impacting actions more likely.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The examples highlight automatic login, backend data extraction, court-record analysis, and one-click publishing on real services without corresponding warnings about unintended posting, account lockout, privacy exposure, or terms-of-service risks. In the context of an agent skill that directly drives a real browser, these examples normalize high-risk account operations and data handling without sufficient safety framing.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The README explicitly promotes automated login, extraction of account and user data, and one-click publishing actions on real authenticated browser sessions, but it does not warn about privacy exposure, account misuse, rate limits, terms-of-service violations, or accidental destructive actions. Because Omnibot operates against a real browser with real cookies and sessions, an agent following these examples could access or publish sensitive data with the user's privileges, making the omission materially risky.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The README explicitly promotes use of a real Chromium browser with real cookies, extensions, and user sessions, but does not warn that an AI agent may gain access to authenticated state and sensitive browsing data. In this skill context, that omission is security-relevant because the tool is designed to operate against live user sessions, increasing the risk of data exposure or unintended actions if used without clear safeguards.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The README showcases automatic publication of articles in a live platform without warning about irreversible or externally visible actions. In the context of an agent skill that can drive a real logged-in browser, this increases the risk of accidental posting, reputational harm, or unauthorized content publication if human approval is not enforced.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The documentation advertises inspection of network traffic and API evidence without disclosing that such captures can include tokens, cookies, request payloads, and personal data. Because this skill is specifically built for browser observation and debugging, omission of those warnings can lead operators to collect or expose sensitive material unintentionally.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The README explicitly promotes operating a real Chromium browser with real cookies, extensions, user sessions, network inspection, and even automated publishing, but it does not present prominent user-facing warnings about privacy, credential exposure, destructive actions, or data-handling risks. In the context of an agent skill, this is dangerous because an AI-driven workflow may act on authenticated sessions and sensitive browser state, enabling unintended data extraction, account actions, or publication from a user's live accounts.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The README explicitly promotes operating on a real Chromium browser with real cookies, real extensions, and real user sessions, but it does not warn that agents may access authenticated data, session-bound content, or sensitive browsing context. In a skill designed for browser control, this omission increases the risk of privacy violations, unintended access to personal or corporate data, and unsafe use in privileged sessions.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The examples showcase automated login, extraction from backend systems, and one-click publishing to live platforms, but they do not include warnings about account modification, content publication, or the need for explicit authorization. In context, this skill is meant to let agents act in a real user session, so omission of guardrails can lead directly to unauthorized actions, accidental posting, data exfiltration, or irreversible account changes.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The README explicitly markets control of a real Chromium session with real cookies, extensions, and logged-in state, and showcases extracting account data and publishing content. Without a clear warning about operating on a live user session, users and downstream agents may underestimate the risk of account actions, sensitive data access, and irreversible changes performed through the browser.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The quick-start instructs users to install the extension and connect it to a local daemon but does not warn that this setup grants automation over the user's active browser context. In practice, that can expose authenticated sessions, page contents, and browsing activity to agent-driven actions, increasing the chance of unintended data disclosure or unauthorized modifications.

Content

No source excerpt is available for this finding.

Autonomous Decision Making

Medium
Category
Excessive Agency
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.

Content

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

md
- Timeout values for commands that expose a timeout option, such as `wait`, are seconds, not milliseconds. Use `--timeout 5` for a five-second wait; never convert milliseconds into a raw CLI timeout value. `dialog logs` and `dialog clear` do not accept `--timeout`.
- Native dialog workflows are session-token scoped: use the exact same `OMNIBOT_SESSION_TOKEN` for the triggering click, `dialog logs`, and `dialog handle`. A different token cannot observe or handle the original dialog.
- Parse JSON output from commands that return JSON.
- Do not claim success without verification evidence.

### Runtime

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The command reference includes a concrete agent workflow for inspecting captcha widgets, mapping coordinates, using a vision model, and dragging/clicking to complete challenges. Even though it says the feature is experimental and not production-ready, it still provides operational guidance for automated captcha solving/bypass, which exceeds ordinary browser debugging and can enable abuse of anti-bot protections.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
83% confidence
Finding

This markdown file documents clipboard write as a capability to write browser clipboard contents, but it does not warn that using the command will replace the user's current clipboard data. Because clipboard modification can affect user data and workflow state, the skill description should disclose that side effect.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
87% confidence
Finding

The markdown presents a concrete invocation example using Chinese text literals (按留言时间排序) and corresponding JavaScript string constants, which implies a fixed locale expectation. There is no accompanying note that the recipe is region-specific or that users should substitute text for their own interface language.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
89% confidence
Finding

The inline example uses Chinese-only anchor and button text (第二段锚点文字, 确定) as the expected interaction pattern, which can be read as prescribing a specific language/locale. The document does not indicate that this is an optional locale-specific example or offer any language choice.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Low
Category
Not specified by scanner
Confidence
77% confidence
Finding

The manifest frames the skill as reading, navigating, debugging, and verifying browser state through the CLI and extension. This section adds a coordination capability for claiming and releasing browser ownership, which is adjacent to browser control but semantically broader than direct state inspection or operation.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
81% confidence
Finding

Lines L153-L154 explicitly state that launch currently reports planned configuration only and does not launch a browser. That creates an intent/documentation divergence within the same section because the command name and example usage suggest an action that the text says does not actually occur.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.