Back to skill

Security audit

Omnisend

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent Omnisend connector, but its setup instructions include executing an unverified remote installer, so users should review that risk before installing.

Review the oo CLI installation path before use. Prefer a pinned, verified installer or package-manager installation, avoid running the remote installer from an elevated shell, and require explicit approval before write or destructive Omnisend actions.

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:63
Finding
Unverified Remote Installer Downloaded and Executed Directly<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 63–67 **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 The installation instructions retrieve mutable content from an external server and pass it directly to a command interpreter. The Bash command pipes the HTTP response into `bash`, while the PowerShell command evaluates it through `iex` (`Invoke-Expression`). Neither installation path pins a release version, verifies a cryptographic checksum, validates a publisher signature, nor gives the user an opportunity to inspect the downloaded file before execution. Consequently, the effective code executed by these instructions can change after the Skill has been reviewed. Although installing the `oo` CLI is related to the Skill's declared purpose, immediate execution of an unverified network response is not the minimum privilege or safest mechanism required for setup. A conventional, versioned package installation or a download-verify-execute process would provide the same functionality with less supply-chain exposure. ### Attack Path 1. The `oo` command is unavailable, causing the user or Agent to follow the documented first-time setup instructions. 2. The system requests `install.sh` or `install.ps1` from `cli.oomol.com`. 3. An attacker compromises the hosting infrastructure, installer publishing process, DNS resolution, or another relevant delivery-chain component. 4. The server returns attacker-controlled shell or PowerShell code. 5. The pipe or `Invoke-Expression` evaluates the response immediately without integrity or authenticity verification. 6. The payload executes with the privileges of the user running the installation command. ### Impact Assessment Successful exploitation p ...[truncated 885 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Remove all instructions that pipe downloaded content directly into a shell or evaluate it with `Invoke-Expression`. 2. Direct users to a versioned release artifact or an established platform package manager. 3. Pin the installer or package to a specific reviewed version rather than a mutable latest-release URL. 4. Publish a SHA-256 or stronger cryptographic digest through a separately protected channel and require verification before execution. 5. Where supported, sign release artifacts and require validation against a documented publisher key or operating-system trust mechanism. 6. Use an explicit staged process, for example: - Download the installer to a local file. - Verify its signature and checksum. - Allow inspection of the file. - Execute it only after successful verification. 7. Document the permissions needed by the installer and advise users not to run it with administrative or root privileges unless a specific, justified installation step requires them. 8. Prefer package-manager examples that preserve provenance, versioning, integrity verification, and upgrade accountability. ]]>
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
97% confidence
Finding
The skill instructs users to install software by piping a remotely fetched script directly into a shell (`curl ... | bash`). This pattern is dangerous because it executes unreviewed code from the network immediately; if the server, transport, distribution pipeline, or referenced script is compromised, arbitrary code runs with the user's privileges.

Vague Triggers

Medium
Confidence
97% confidence
Finding
The description says to use this skill for 'ANY Omnisend request' and 'Whenever a task involves Omnisend,' which is a very broad trigger that could overlap with many ordinary requests involving the service. The file does not provide negative examples or narrower activation boundaries, increasing the chance of unintended invocation.

Static analysis

No suspicious patterns detected.