Back to skill

Security audit

Discourse

Security checks for vulnerabilities and agentic risk

Overview

This Discourse connector is mostly coherent, but its setup instructions include direct execution of remote installer scripts, which users should review before installing.

Install only if you are comfortable using OOMOL as an intermediary for Discourse actions. Avoid running the documented remote installer commands blindly; prefer an official package manager or manually download and verify the installer before execution, and confirm any post or topic creation before the agent runs it.

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 Installer Download and Immediate Execution## Vulnerability Details **File Location**: `SKILL.md`, lines 58–67 **Vulnerability Type**: Remote payload retrieval and execution **Risk Level**: Critical The first-time setup instructions execute mutable remote installation scripts directly in Bash or PowerShell: ```markdown - **`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 irm https://cli.oomol.com/install.ps1 | iex # Windows PowerShell ``` ``` ### Technical Analysis Both installation commands combine retrieval and execution without pinning an immutable release, validating a cryptographic signature or checksum, or allowing the downloaded script to be inspected before execution. HTTPS protects the connection to the resolved endpoint, but it does not guarantee that the installer remains unchanged after the Skill has been audited. Compromise of the distribution server, publishing process, account, or related infrastructure could replace the installer with arbitrary code. The Bash command passes the response body directly to a shell, while the PowerShell command executes it through `Invoke-Expression`. Installing the CLI is only a fallback when `oo` is unavailable and is not required for ordinary Discourse operations after installation. Immediate remote-script execution therefore exceeds the minimum runtime privileges necessary for the Skill's declared connector functionality. ### Attack Path 1. The `oo` executable is absent, causing the documented first-time setup path to apply. 2. An attacker compromises or gains control over the remote installer distribution path and replaces `install.sh` or `install.ps1`. 3. The user or agent follows the Skill instructions. 4. `curl` or `Invoke-RestMethod` retrieves the attacker-controlled response. 5. Bash or `Invoke-Expression` immediately in ...[truncated 798 chars]
Remediation
## Remediation Suggestions 1. Remove all `curl | bash` and `irm | iex` installation patterns. 2. Direct users to an official package manager or versioned release artifact from a documented distribution channel. 3. Pin the installer or binary to a specific immutable version. 4. Download the artifact to disk without executing it. 5. Verify a publisher signature and a SHA-256 digest obtained through a separately protected, pinned source. 6. Permit inspection of the downloaded artifact before execution. 7. Require explicit user approval before running any installer. 8. Run installation with ordinary user privileges unless a narrowly scoped operation demonstrably requires elevation. 9. Prefer documenting installation as a manual prerequisite rather than allowing an agent to invoke an installer automatically.
Vulnerability Patterns
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (1)

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 the agent to install software by piping a remotely fetched script directly into a shell (`curl ... | bash`). This is dangerous because it executes network-delivered code without verification, pinning, checksum validation, or user review; if the remote endpoint, CDN, TLS trust chain, or publisher account is compromised, arbitrary code execution occurs on the host.

Static analysis

No suspicious patterns detected.