Back to skill

Security audit

Smartlead

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly a coherent Smartlead connector, but its first-time setup tells the agent or user to execute unverified remote installer scripts without checksum, signature, or explicit approval safeguards.

Review before installing. The Smartlead connector behavior is disclosed and mostly read-only, but do not run the documented curl | bash or irm | iex installer commands unless you trust the OOMOL installer source and have verified it through a safer installation path. Prefer installing the oo CLI from a signed, versioned, or checksum-verified release and avoid running setup from an elevated shell.

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:58
Finding
Unverified Remote Installer Download and Immediate Execution## Vulnerability Details **File Location**: `SKILL.md`, lines 58–62 **Vulnerability Type**: Remote payload retrieval and execution **Risk Level**: Critical The first-time setup instructions provide commands that download mutable scripts from an external server and execute them immediately: ```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 create a direct remote-code-execution channel: - On macOS and Linux, `curl` streams the server response directly into `bash`. - On Windows, `Invoke-RestMethod` (`irm`) retrieves the response and passes it directly to `Invoke-Expression` (`iex`). - Neither command pins a release, verifies a cryptographic signature or checksum, nor permits inspection before execution. - HTTPS protects transport integrity under normal conditions, but it does not establish that every future response from the endpoint is trustworthy. - The effective payload can change after the Skill has been reviewed. Compromise of the hosting service, publication pipeline, domain, DNS/TLS path, or associated administrative account could turn the documented installation command into arbitrary code execution. The instructions only recommend these commands when the CLI is unavailable, which reduces how often they are invoked but does not eliminate the execution risk. Remote installation is also not necessary for the Skill's normal read operations when the CLI is already installed, and automatically executing an unverified installer exceeds the minimum privilege required to document the setup process. ### Attack Path 1. The `oo` CLI is not installed, causing a command to fail with `oo: command not found`. 2. The Agent or user follows the documented first-time setup instructions. 3. The command retrieves the current contents of the external inst ...[truncated 1290 chars]
Remediation
## Remediation Suggestions 1. Remove all direct `curl | bash` and `irm | iex` installation patterns. 2. Direct users to a trusted, versioned package manager or pinned release artifact from an authoritative distribution channel. 3. Download the installer to a local file without executing it automatically. 4. Pin an explicit CLI and installer version rather than retrieving an unversioned mutable script. 5. Publish and verify a SHA-256 checksum obtained through a separately authenticated channel. 6. Prefer cryptographic signature verification using a documented vendor signing key before execution. 7. Allow the user to inspect the downloaded file and require explicit approval before running it. 8. Execute the installer with ordinary user privileges unless a documented operation strictly requires elevation. 9. Apply equivalent download, pinning, signature-verification, inspection, and approval controls to both the Unix and Windows installation paths. 10. Keep installation outside normal connector execution so Smartlead read actions never trigger software installation automatically.
Vulnerability Patterns
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • 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 (3)

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 users to install software by piping a remotely fetched script directly into the shell (`curl ... | bash`). This is dangerous because any compromise of the hosting server, CDN, DNS, or transport path could result in arbitrary code execution on the user's machine, and skill users may follow the instruction with elevated privileges or without inspecting the script.

Description-Behavior Mismatch

Medium
Confidence
98% confidence
Finding
The manifest description limits the skill's purpose to read-oriented Smartlead requests ('searching and reading data'). However, the file explicitly documents support for actions that 'change state' and includes safety guidance for '[write]' and '[destructive]' operations, indicating the skill is intended to perform mutations too. That is a semantic mismatch between the declared scope and the documented behavior.

Vague Triggers

Medium
Confidence
95% confidence
Finding
The description says to use this skill for "ANY Smartlead request," including broad activities like searching and reading data. This is an ambiguous and expansive activation condition that could overlap with many ordinary requests mentioning Smartlead, without clarifying scope boundaries or exclusions.

Static analysis

No suspicious patterns detected.