Back to skill

Security audit

Botpress

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly a coherent Botpress read connector, but its first-time setup tells users or agents to execute unverified remote installer scripts directly in a shell.

Install only if you trust OOMOL and are comfortable using its CLI with your Botpress account. Do not run the provided pipe-to-shell installer commands blindly; prefer a verified, versioned installer or inspect the script first, and avoid elevated privileges during setup.

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:57
Finding
Unverified Remote Installation Scripts Executed Directly by Shells## Vulnerability Details **File Location**: `SKILL.md`, lines 57–61 **Vulnerability Type**: Remote payload retrieval and execution **Risk Level**: Critical ```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 download mutable scripts from external URLs and immediately execute their contents with Bash or PowerShell. They do not pin a reviewed release, verify a cryptographic signature or checksum, save the script for inspection, or otherwise validate its integrity before execution. Although `cli.oomol.com` is consistent with the declared OOMOL provider, domain consistency does not eliminate the risks of server compromise, DNS or delivery-chain compromise, publishing-account compromise, or a future modification of the remotely hosted scripts. The effective executable payload can change after this Skill has been audited. Installing the CLI is ancillary to the Skill's declared Botpress read functionality. Allowing an unverified response to execute with all permissions of the current user therefore exceeds the minimum privilege and trust necessary to provide setup guidance. ### Attack Path 1. The `oo` CLI is absent, causing an agent or user to follow the first-time setup instructions. 2. An attacker compromises the remote installation endpoint or its publishing infrastructure, or otherwise causes it to return attacker-controlled script content. 3. `curl` or `Invoke-RestMethod` retrieves the mutable payload. 4. The shell pipeline passes the response directly to Bash or `Invoke-Expression` without integrity verification or review. 5. The attacker-controlled script executes immediately with the privileges of the user running the command. 6. The payload can inspect accessible files and credentials, alter the host, install additional software, or transmi ...[truncated 831 chars]
Remediation
## Remediation Suggestions - Remove both pipe-to-shell installation commands. - Direct users to a trusted platform package manager or a manually downloadable, versioned release artifact. - Pin installation instructions to a specific reviewed CLI version rather than a mutable latest-version script. - Publish cryptographic checksums and signed release artifacts through an independently verifiable channel. - Require users to download the artifact first, verify its signature and checksum, and only then execute or install it. - If an installation script remains necessary, save it locally for inspection instead of piping it directly into a shell. - Document that installation must occur without administrator privileges unless a specific, justified operation requires elevation. - Apply the same controls to both the Bash and PowerShell installation paths.
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 (4)

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
94% confidence
Finding
The skill includes a classic remote-script execution pattern, piping a fetched installer directly into bash. If an agent follows these instructions automatically, a compromised server, MITM in a weakened environment, or supply-chain issue could lead to arbitrary code execution on the host.

Description-Behavior Mismatch

Medium
Confidence
96% confidence
Finding
The manifest and description frame the skill as suitable for 'searching and reading data', but the body instructs the agent to use generic Botpress actions and explicitly discusses write and destructive operations. This mismatch can cause an agent or user to invoke the skill under a false read-only assumption, increasing the chance of unintended state-changing operations.

Vague Triggers

Medium
Confidence
97% confidence
Finding
The trigger language is overly broad: 'ANY Botpress request' and 'Whenever a task involves Botpress' encourage routing a wide range of tasks to this skill without narrowing scope to safe use cases. In a tool-enabled agent setting, broad routing increases the chance the skill is selected for operations beyond the user's intent or beyond the skill's clearly documented safety boundaries.

Intent-Code Divergence

Low
Confidence
79% confidence
Finding
The safety section claims untagged actions are reads, but the skill also tells the agent to inspect and run arbitrary Botpress actions via schema and connector commands. Because only a few read actions are listed while the execution path is generic, an agent may infer broader safety than actually exists and execute unlisted state-changing actions without adequate scrutiny.

Static analysis

No suspicious patterns detected.