Back to skill

Security audit

Meta

Security checks for vulnerabilities and agentic risk

Overview

This Meta skill is mostly coherent and read-focused, but its setup guidance includes unverified remote installer commands that could execute arbitrary code if followed.

Review the setup section carefully before installing. Normal Meta reads through an already installed oo CLI look purpose-aligned, but do not run the provided curl | bash or irm | iex installer commands unless you independently trust and verify the installer source and understand what the CLI will install or change.

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 Installation Scripts Are Executed Directly## Vulnerability Details **File Location**: `SKILL.md`, lines 58-62 **Vulnerability Type**: Remote payload retrieval and immediate execution **Risk Level**: High The first-time setup instructions execute remotely hosted installation scripts directly in local command interpreters: ```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 methods combine payload retrieval and execution into a single operation. The downloaded scripts are not pinned to an immutable version and are not checked against a trusted cryptographic signature or checksum before execution. Although HTTPS protects the connection in transit under normal conditions, it does not guarantee that the content hosted at these URLs will remain unchanged after the Skill has been audited. A compromise of the hosting infrastructure, publishing credentials, DNS or certificate environment, or the legitimate distribution pipeline could cause arbitrary replacement content to be executed. This behavior exceeds the minimum privileges required to query Meta data. The declared functionality only requires an already installed CLI to invoke connector actions. Installing software by executing mutable remote code is a separate, security-sensitive operation and should not occur without payload verification and explicit user approval. ### Attack Path 1. The `oo` command is unavailable, causing the agent or user to follow the first-time setup instructions. 2. An attacker compromises the remote installation endpoint or its deployment pipeline and replaces the installer with malicious shell or PowerShell code. 3. The documented `curl | bash` or `irm | iex` command retrieves the current attacker-controlled response. 4. The response is passed directly to the local interpreter without inspection, version pinning, checksum v ...[truncated 1378 chars]
Remediation
## Remediation Suggestions 1. Remove the direct `curl | bash` and `irm | iex` installation commands from the Skill. 2. Treat installation as a separate operation requiring explicit user approval rather than an automatic fallback during Meta requests. 3. Pin the CLI to a specific immutable release and download it from a verifiable official release location. 4. Publish a cryptographic checksum for each platform artifact and verify it locally before execution or installation. 5. Prefer signed packages and verify the publisher signature using a trusted key distributed through an independent channel. 6. Download the artifact to a local file first so its origin, checksum, signature, and contents can be inspected before execution. 7. Use a trusted platform package manager where available, with a version constraint and signature-verification support. 8. Run installation with ordinary user privileges unless a documented operation strictly requires elevation. Do not request broad administrative privileges by default. 9. Document the files, executables, network endpoints, and configuration changes introduced by the installer. 10. Keep the current instruction to assume the CLI is already installed, but on failure provide verified manual installation guidance instead of executing remote code.
Vulnerability Patterns
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • 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
Findings (4)

Credential Access

High
Category
Privilege Escalation
Content
## Available actions

- `get_current_user` — Retrieve the current Meta Graph API user for the connected access token.
- `get_insights` — Retrieve Meta Ads insights for an ad account, campaign, ad set, or ad object.
- `list_ad_accounts` — List Meta ad accounts available to the connected access token.
- `list_campaigns` — List campaigns under one Meta ad account with optional delivery status filters.
Confidence
70% confidence
Finding
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Credential Access

High
Category
Privilege Escalation
Content
## Available actions

- `get_current_user` — Retrieve the current Meta Graph API user for the connected access token.
- `get_insights` — Retrieve Meta Ads insights for an ad account, campaign, ad set, or ad object.
- `list_ad_accounts` — List Meta ad accounts available to the connected access token.
- `list_campaigns` — List campaigns under one Meta ad account with optional delivery status filters.
Confidence
70% confidence
Finding
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

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 recommends a shell one-liner that downloads and immediately executes a remote script via `curl ... | bash`. If the install endpoint, transport, or hosting is compromised, this enables arbitrary code execution on the user's machine with no verification step, and the skill context encourages using it during troubleshooting.

Vague Triggers

Medium
Confidence
95% confidence
Finding
The description says to use this skill for "ANY Meta request" and "Whenever a task involves Meta," which is an extremely broad activation condition. This overlaps with many ordinary Meta-related tasks and does not define boundaries or exclusions, increasing the risk of unintended invocation.

Static analysis

No suspicious patterns detected.