Back to skill

Security audit

Torii

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly a Torii read connector, but its setup tells users to run unverified remote installer scripts and its generic action runner is broader than its read-only description.

Install only if you trust OOMOL and the Torii connector with your organization's Torii data. Avoid running the pipe-to-shell installer commands as written; prefer a verified, version-pinned installation path. Treat the skill as suitable for read-only Torii lookups unless you explicitly review and approve any state-changing connector action.

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:63
Finding
Unverified Remote Installer Scripts Executed Directly by Shells## Vulnerability Details **File Location**: `SKILL.md`, lines 63-67 **Vulnerability Type**: Remote payload retrieval and execution **Risk Level**: Critical **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 installation instructions retrieve mutable content from external URLs and immediately execute it through `bash` or PowerShell's `Invoke-Expression`. The payload is not pinned to a specific release, downloaded for inspection, or verified using a cryptographic signature or pinned checksum. Consequently, the code ultimately executed can change after the Skill has been reviewed. Trust is placed in the remote domain, its hosting infrastructure, DNS and TLS delivery path, and the continued security of the installer publication process. A compromise at any of these points could replace the legitimate installer with arbitrary commands. Installation is presented only as a fallback when the `oo` command is unavailable, and the Skill's declared tool restriction is `Bash(oo *)`. If that restriction is correctly enforced, the agent cannot directly invoke the displayed `curl` command. Nevertheless, the instructions may induce a user or a less strictly constrained runtime to execute the pipelines manually. Direct pipe-to-shell execution exceeds the minimum safe installation mechanism for the declared Torii query functionality. The separately flagged network behavior associated with `oo connector run` is consistent with the Skill's declared purpose of querying Torii through OOMOL. The reviewed file contains no evidence that raw credentials or returned Torii records are deliberately transmitted to an unrelated destination. ### Attack Path 1. An attacker compromises the installer publication account, `cli.oomol.com`, its hosting infrastructure, or another trusted d ...[truncated 1386 chars]
Remediation
## Remediation Suggestions - Remove the `curl | bash` and `irm | iex` pipelines from the setup instructions. - Prefer an authenticated platform package manager or a version-pinned release artifact from the official project repository. - Separate download and execution into distinct steps so users can inspect the installer before running it. - Publish cryptographic signatures or SHA-256 checksums through an independently protected channel and require verification before execution. - Pin installation instructions to an explicit CLI version rather than a mutable generic installer URL. - Avoid requesting administrator privileges unless a documented installation step strictly requires them. - Keep installation outside automated Skill execution and require explicit user approval before running any installer. - If scripts must be used, document a safer process such as downloading to a non-executable temporary file, verifying its signature and expected owner, reviewing it, and then executing it with least privilege. - Preserve and enforce the existing `Bash(oo *)` tool restriction so the Skill cannot directly run downloaders, shells, or unrelated commands.
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
95% confidence
Finding
The skill instructs users to install software by piping a remotely fetched script directly into `bash`, which executes unreviewed code from the network with the user's privileges. If the remote server, transport, or distribution channel is compromised, this becomes an immediate arbitrary code execution path on the host running the skill.

Description-Behavior Mismatch

Medium
Confidence
94% confidence
Finding
The manifest says the skill is for searching and reading data, but the body describes a generic Torii action runner and explicitly discusses possible write and destructive actions. This mismatch can mislead downstream agents or reviewers into granting trust or invoking the skill in contexts where broader capabilities exist, increasing the chance of unintended state-changing operations.

Vague Triggers

Medium
Confidence
95% confidence
Finding
The instruction to use this skill for any Torii-related request is overly broad and lacks clear task or permission boundaries. In practice, that can cause an agent to route all Torii work through a powerful connector wrapper without first checking whether the request is appropriate, read-only, sensitive, or requires additional user confirmation.

Intent-Code Divergence

Low
Confidence
76% confidence
Finding
The safety section claims write and destructive actions will be tagged, but the listed actions show no such tags even though the earlier execution model permits arbitrary action names via `oo connector run`. This creates a false sense of safety because users may assume the visible list is exhaustive while the command pattern supports broader connector actions.

Static analysis

No suspicious patterns detected.