Back to skill

Security audit

Stream Estate

Security checks for vulnerabilities and agentic risk

Overview

The skill is mainly a read-only Stream Estate lookup helper, but its setup includes an unverified internet installer that can run code on the user's machine.

Review the setup path before installing. Prefer installing the oo CLI through a trusted package manager or a download-and-verify process, and do not let an agent automatically run the remote installer unless you accept the local code-execution risk. Once oo is already installed and connected, the listed Stream Estate actions appear limited to read-only property search and retrieval.

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
Unpinned Remote Installer Downloaded and Executed Directly<![CDATA[ ## 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 first-time setup instructions download scripts from external URLs and immediately execute their contents using Bash or PowerShell. The instructions do not pin an immutable release, verify a cryptographic checksum, validate a publisher signature, or allow the payload to be inspected before execution. Consequently, the code that ultimately runs can change after the Skill has been reviewed. HTTPS protects data in transit but does not protect against compromise of the remote server, its deployment pipeline, DNS or certificate infrastructure, or the upstream installer source. A compromised endpoint could therefore return arbitrary shell commands. Installing the CLI is also broader than the Skill's declared property-search functionality. The declared runtime capability is limited to `Bash(oo *)`, whereas these setup commands introduce a separate arbitrary-code execution step using the invoking user's operating-system privileges. No evidence in the reviewed file establishes that the current remote scripts are malicious, and no direct credential-exfiltration implementation was found. The vulnerability is the unverified, mutable execution channel itself. ### Attack Path 1. The `oo` CLI is unavailable on the user's system. 2. A user or agent follows the documented first-time setup instructions. 3. The installer endpoint, hosting infrastructure, or software supply chain is compromised, or the remotely hosted installer is otherwise replaced. 4. The affected endpoint returns attacker-controlled shell or PowerShell code. 5. `bash` or `iex` executes the response immediately without integr ...[truncated 1068 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Remove all `curl | bash` and `irm | iex` installation instructions. 2. Direct users to an official installation guide or package manager rather than automatically executing downloaded content. 3. Pin the installer or CLI to a specific immutable release. 4. Download the artifact to disk without executing it: ```bash curl -fL -o oo-installer.sh https://example.invalid/releases/vX.Y.Z/install.sh ``` 5. Publish and verify a SHA-256 checksum over a secure, independently authenticated channel: ```bash echo "<expected-sha256> oo-installer.sh" | sha256sum --check ``` 6. Prefer signed release packages and verify the publisher's cryptographic signature before installation. 7. Allow the user to inspect the downloaded installer and require explicit approval before execution. 8. Avoid requesting administrator privileges unless a documented installation step strictly requires them. 9. Keep normal Skill execution limited to the already-installed `oo` CLI and do not perform installation automatically after a command failure. 10. Document the exact files, permissions, network destinations, and system changes introduced by the installer. ]]>
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
97% confidence
Finding
The skill includes a `curl ... | bash` installation command that fetches and immediately executes a remote script, which is a classic supply-chain and arbitrary code execution risk. If the remote host, transport, or script content is compromised, users may execute attacker-controlled code on their machine simply by following the skill's setup instructions.

Vague Triggers

Medium
Confidence
97% confidence
Finding
The skill description says to use this skill for ANY Stream Estate request and instead of calling the API directly, which can cause overly broad routing and unintended activation whenever Stream Estate is mentioned. In an agent setting, this increases the chance that the skill is invoked in contexts the user did not intend, potentially exposing connected-account data or causing unnecessary tool use without clear user consent.

Static analysis

No suspicious patterns detected.