Back to skill

Security audit

UnifAPI

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly coherent for using UnifAPI through OOMOL, but its setup instructions include unsafe remote installer execution and some scope/effect ambiguity that users should review first.

Review the first-time setup before installing. Prefer a verified or package-manager installation of the oo CLI instead of piping a downloaded script directly into a shell, and confirm any action tagged [write] until the publisher clarifies whether it really changes UnifAPI state.

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:270
Finding
Unverified Remote Installer Scripts Executed Directly by Shells## Vulnerability Details **File Location**: `SKILL.md`, lines 270-278 **Vulnerability Type**: Remote payload retrieval and execution **Risk Level**: High The first-time setup instructions execute mutable scripts downloaded from an external service: ```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 pass an external HTTP response directly to a command interpreter. The downloaded content is not pinned to a reviewed version and is not subject to checksum, signature, or publisher verification before execution. Although `cli.oomol.com` is consistent with the declared OOMOL integration, the package contains no evidence that future responses from these URLs will be identical to the content reviewed during this audit. The effective executable payload can therefore change independently of the Skill. Compromise of the hosting infrastructure, installer publication process, domain, or delivery path could turn the documented setup operation into arbitrary local code execution. Installation of the required CLI may be legitimate when `oo` is unavailable, but direct script-to-shell execution exceeds the minimum privilege and trust necessary to install it safely. Downloading a fixed release, verifying it, and then performing an explicit installation would provide the required functionality without immediately interpreting an unverified network response. The Skill otherwise limits its declared tool access to `Bash(oo *)`. Its documented transfer of action payloads through `oo connector run` is intrinsic to the remote connector functionality, and the reviewed file contains no evidence of unrelated secret collection or credential-file exfiltration. ### Attack Path 1. The `oo` CLI is absent, causing an agent or user to follow the first-time setup instructions. 2. An ...[truncated 1249 chars]
Remediation
## Remediation Suggestions 1. Remove the `curl | bash` and `irm | iex` installation patterns. 2. Direct users to a version-pinned release hosted in the CLI's verifiable official repository or package registry. 3. Download the installer or binary to a local file without executing it immediately. 4. Publish and verify a cryptographic checksum for the exact pinned artifact. Prefer a signed release and validate its signature against a documented publisher key. 5. Abort installation if checksum or signature verification fails. 6. Execute the verified artifact as a separate, explicit step using ordinary user privileges. 7. Document the files, network destinations, and permissions used by the installer so users can assess its effects before execution. 8. Avoid recommending elevated execution unless a specific installation operation requires it; isolate any privileged step from the downloaded installer logic. 9. Where possible, use a platform-native package manager with version pinning and package-signature verification.
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
95% confidence
Finding
The skill instructs users to install software via a remote script piped directly into bash, which is a classic supply-chain risk because downloaded code executes immediately without inspection or integrity verification. If the install endpoint, transport, or publisher account were compromised, an attacker could obtain arbitrary code execution on the host running the skill.

Vague Triggers

Medium
Confidence
95% confidence
Finding
The manifest says to use this skill for ANY UnifAPI request, which is an overly broad routing trigger that can cause an agent to invoke a highly capable external-integration skill in situations where narrower or safer handling would be preferable. Because the skill exposes many actions across scraping, social data access, and rendering, over-selection increases the chance of unnecessary data exposure, risky browsing, or accidental execution of sensitive operations.

Intent-Code Divergence

Medium
Confidence
91% confidence
Finding
The action list marks multiple `get_` and `list_` operations as `[write]`, including `get_instagram_post`, `get_linkedin_post`, `get_reddit_post`, and several comment/reaction listing actions. This directly conflicts with the Safety section, which states that `[write]` means the action changes UnifAPI state, creating misleading operator guidance about the effects of these actions.

Static analysis

No suspicious patterns detected.