Back to skill

Security audit

Pylon

Security checks for vulnerabilities and agentic risk

Overview

This Pylon skill is mostly coherent, but its setup instructions include executing a remotely downloaded installer directly in a shell.

Install only if you are comfortable using OOMOL as the connector path for Pylon and with agents performing confirmed Pylon write actions. Avoid running the documented remote installer commands blindly; prefer an official package-manager or verified installer path, inspect what will be installed, and do not run setup from an elevated shell unless required.

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:67
Finding
Unverified Remote Installer Executed Directly by Shell<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:67-71` **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 mutable content from an external server and immediately pass it to a command interpreter. The Unix command pipes the response into Bash, while the Windows command evaluates the downloaded PowerShell content using `Invoke-Expression`. HTTPS can authenticate the remote endpoint during transport, but it does not provide immutable version pinning or verify that the installer matches an artifact reviewed with this Skill. No checksum, digital signature, fixed release version, or manual inspection step is required. Consequently, the effective code can change after the Skill has been audited. Installing the required CLI is relevant to the declared functionality, but immediate execution of unverified network content is not the minimum-risk installation method. The installer receives all permissions held by the invoking user. If the instructions are followed from an elevated shell, the downloaded payload could receive administrative or root privileges. There is no evidence in the audited file that the currently hosted installers are malicious. The vulnerability is the unsafe remote execution channel and its dependence on mutable, network-hosted code. ### Attack Path 1. The `oo` CLI is unavailable, causing the user or agent to consult the first-time setup instructions. 2. An attacker compromises the installer host, publishing pipeline, hosting account, or another relevant element of the delivery chain. 3. The attacker replaces or influences the remote installer with a modified payload. 4. The documented command downloads the current payload without check ...[truncated 1072 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Remove all direct pipe-to-interpreter installation commands, including both `curl | bash` and `Invoke-Expression` patterns. 2. Prefer a trusted operating-system package manager or an official package repository that verifies signed metadata and packages. 3. If standalone installers are necessary: - Pin a specific CLI release rather than downloading a mutable default installer. - Download the artifact to a local file without executing it. - Publish and verify a cryptographic checksum from an independently protected channel. - Prefer a verifiable digital signature tied to a documented release key. - Stop installation if signature or checksum validation fails. - Allow the user to inspect the downloaded script before execution. - Execute the verified file as a separate, explicit step. 4. Do not request root or administrator privileges unless a documented installation operation strictly requires them. Prefer a user-local installation directory. 5. Require explicit user approval before downloading or executing installation software; an agent should not automatically install the CLI after a command failure. 6. Document the exact files, directories, network destinations, and configuration changes made by the installer. 7. Pin redirects and expected download origins where feasible, and reject unexpected content types or destinations. ]]>
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
98% confidence
Finding
The skill instructs the agent/user to install software via a remote script piped directly into a shell (`curl ... | bash`). This pattern is dangerous because it executes network-fetched code without prior verification, making compromise of the upstream host, CDN, DNS, or transport path potentially lead to arbitrary code execution on the local system.

Vague Triggers

Medium
Confidence
96% confidence
Finding
The description says to use this skill for "ANY Pylon request" and "Whenever a task involves Pylon," which is a very broad activation condition for a manifest/markdown file. It does not define boundaries, exclusions, or narrower trigger examples, so it could cause the skill to be invoked for loosely related mentions of Pylon rather than clearly intended operations.

Static analysis

No suspicious patterns detected.