Back to skill

Security audit

PredictLeads

Security checks for vulnerabilities and agentic risk

Overview

This PredictLeads skill is coherent and mostly read-only, but its first-time setup tells users to run unverified remote installer scripts directly in a shell.

Review the installer step before installing. Prefer downloading the oo CLI from a trusted, versioned source and verifying it before execution; otherwise the skill's normal PredictLeads read actions and account-connection flow are disclosed and purpose-aligned.

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:59
Finding
Unverified Remote Installer Download and Immediate Execution## Vulnerability Details **File Location**: `SKILL.md`, lines 59–63 **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 setup instructions pipe remotely downloaded content directly into a command interpreter. The Unix command sends the response from `curl` to Bash, while the Windows command uses `Invoke-RestMethod` and `Invoke-Expression` to execute the downloaded PowerShell content. The remote payload is not version-pinned, inspected, cryptographically signed, or checked against a trusted digest before execution. Consequently, the effective code can change after the Skill package has been reviewed. HTTPS protects the transport channel but does not mitigate compromise of the hosting infrastructure, publishing account, DNS or certificate trust chain, or installer itself. Installing the required CLI may be legitimate, but immediate execution of mutable network content exceeds the minimum privilege necessary to provide installation guidance. The Skill can instead direct users to a pinned, verifiable release and require explicit approval before installation. ### Attack Path 1. A PredictLeads action fails because the `oo` CLI is unavailable. 2. The agent or user follows the first-time setup instructions in `SKILL.md`. 3. The command retrieves the current installer from `cli.oomol.com`. 4. Bash or PowerShell executes the response immediately without prior inspection or integrity verification. 5. If the installer source or delivery chain has been compromised, attacker-controlled code runs with the privileges of the invoking user. 6. That code can access resources available to the user and may attempt additional downloads, system modification, credential access, or pers ...[truncated 704 chars]
Remediation
## Remediation Suggestions 1. Remove direct `curl | bash` and `irm | iex` execution patterns. 2. Pin installation instructions to a reviewed CLI version rather than a mutable installer endpoint. 3. Download the release artifact to a local file without executing it automatically. 4. Publish and verify a cryptographic signature from a separately established trust key, or verify a pinned SHA-256 digest before execution. 5. Prefer a trusted operating-system package manager or a signed platform-native package where available. 6. Display the resolved artifact version, source, checksum, and intended changes to the user. 7. Require explicit user approval before installing software or running the verified installer. 8. Run installation with ordinary user privileges unless a documented operation specifically requires elevation. 9. Fail safely if signature or digest verification fails; do not fall back to executing an unverified payload. A safer Unix workflow would follow this general sequence: ```bash curl -fL --output oo-installer.sh "https://trusted.example/oo/<pinned-version>/install.sh" printf '%s %s\n' '<trusted-sha256>' 'oo-installer.sh' | sha256sum --check - less oo-installer.sh bash oo-installer.sh ``` The artifact URL and digest must be pinned to a reviewed release, and signature verification is preferable to relying only on a digest distributed through the same channel.
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 users to install software by piping a remotely fetched script directly into a shell (`curl ... | bash`). This creates a supply-chain and remote code execution risk: if the install endpoint, transport, DNS, or hosting is compromised, arbitrary code will run immediately on the user's machine without inspection.

Vague Triggers

Medium
Confidence
95% confidence
Finding
The description says to use this skill for "ANY PredictLeads request" and "Whenever a task involves PredictLeads," which is a very broad trigger without boundaries or exclusion conditions. In a manifest file, this can overlap with many ordinary mentions of PredictLeads and does not specify what kinds of requests should not invoke the skill.

Static analysis

No suspicious patterns detected.