Back to skill

Security audit

Metabase

Security checks for vulnerabilities and agentic risk

Overview

The Metabase skill is purpose-aligned, but its setup tells agents to run unverified internet installer scripts and it under-scopes SQL execution risk.

Install only if you trust OOMOL and are comfortable with the oo CLI and Metabase connector having access allowed by your connected account. Prefer reviewing or verifying the oo installer through an official release channel before running it, and require explicit approval for native SQL or any action that changes Metabase content.

Vulnerability Patterns
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Findings (1)

T03 · Remote Payload Retrieval and Execution

Error
Location
SKILL.md:82
Finding
Unverified Remote Installation Scripts Executed Directly by Shell## Vulnerability Details **File Location**: `SKILL.md`, lines 82–86 **Vulnerability Type**: Remote payload retrieval and execution **Risk Level**: High ### Vulnerable Code ```bash curl -fsSL https://cli.oomol.com/install.sh | bash # macOS / Linux ``` ```powershell irm https://cli.oomol.com/install.ps1 | iex # Windows PowerShell ``` ### Technical Analysis Both installation commands retrieve mutable content from a remote server and immediately pass the response to a command interpreter. The downloaded scripts are not pinned to a specific version, saved for inspection, or validated using a cryptographic signature or checksum. Consequently, the code executed on a user's computer can differ from the content available when this Skill was audited. Although installing the `oo` CLI supports the declared Metabase functionality and the download domain is consistent with OOMOL branding, immediate execution of an unverified network response is not the minimum privilege or safest installation mechanism necessary to provide that functionality. The effective payload could be changed through compromise of the hosting service, publishing credentials, release pipeline, DNS infrastructure, or another part of the delivery path. An unexpected HTTP response could likewise be interpreted as shell code. ### Attack Path 1. The `oo` CLI is unavailable, causing the agent or user to consult the first-time setup instructions. 2. An attacker compromises the remote script, its publishing pipeline, or a trusted component of the delivery infrastructure. 3. The macOS/Linux command streams the current response directly into `bash`, or the Windows command sends it directly to `Invoke-Expression`. 4. The unverified response executes with the privileges of the user running the installation. 5. The payload can access resources available to that user and may install additional components or establish persistence, depending on local permissio ...[truncated 609 chars]
Remediation
## Remediation Suggestions 1. Remove the pipe-to-shell and `Invoke-Expression` installation patterns. 2. Direct users to a version-pinned package from an authenticated official release channel. 3. Download the installer to a local file without executing it automatically. 4. Publish a cryptographic checksum and preferably a signed release manifest, then require verification before execution. 5. Allow users to inspect the downloaded installer and run it as a separate, explicit step. 6. Document the files, permissions, and system changes made by the installer. 7. Avoid requesting administrative privileges unless a specific installation operation requires them. 8. Prefer platform package managers that provide package signing, version pinning, and integrity verification.
Vulnerability Patterns
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (2)

External Script Fetching

High
Category
Supply Chain
Content
- **`oo: command not found`** — install the oo CLI (other platforms: <https://cli.oomol.com/install-guide.md>):

  ```bash
  curl -fsSL https://cli.oomol.com/install.sh | bash    # macOS / Linux
  ```

  ```powershell
Confidence
98% confidence
Finding
The skill instructs the agent to install software by piping a remotely fetched script directly into a shell (`curl ... | bash`). This is dangerous because it executes unverified code from the network with the user's privileges, enabling supply-chain compromise, server-side script tampering, or man-in-the-middle-assisted code execution if the delivery chain is compromised.

Vague Triggers

Medium
Confidence
95% confidence
Finding
The invocation guidance is extremely broad and does not define limits, exclusions, or negative examples for when this skill should versus should not be used. That increases the risk of unintended activation for loosely related Metabase mentions or tasks that might be better handled another way.

Static analysis

No suspicious patterns detected.