Back to skill

Security audit

Demodesk

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly a Demodesk data-reading connector, but its setup can run a remote installer script directly on the user's machine without verification or clear approval.

Review this skill before installing. It can read Demodesk business data available to your connected account, which fits its purpose, but avoid letting an agent run the provided installer commands automatically. Install the oo CLI only from a source you trust, preferably with a pinned release and verification, and limit use to the listed read-only Demodesk actions unless future versions clearly disclose and gate any write actions.

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:62
Finding
Unverified Remote Installer Download and Immediate Shell Execution<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 62–66 **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 installation instructions download mutable scripts from external URLs and immediately execute the responses through Bash or PowerShell. Neither command pins an installer version, validates a cryptographic checksum or signature, nor provides an inspection step before execution. Although the remote host is associated with the OOMOL service used by the Skill, that relationship does not establish the integrity of every future response from the installation endpoints. If the website, hosting infrastructure, domain, DNS resolution, TLS delivery path, or release process is compromised, the downloaded content can be replaced after the Skill has been reviewed. Installing the required CLI may be legitimate, but direct `curl | bash` and `irm | iex` execution exceeds the minimum privilege and trust necessary to perform installation. It grants the remote response the full privileges of the user running the command. The instruction is presented only as a fallback after `oo: command not found`, which reduces execution frequency but does not mitigate the underlying arbitrary-code execution risk. ### Attack Path 1. An attacker compromises or gains the ability to modify `https://cli.oomol.com/install.sh` or `https://cli.oomol.com/install.ps1`, or redirects traffic to an attacker-controlled response. 2. The `oo` CLI is absent from the target environment. 3. Following the Skill’s first-time setup instructions, the user or Agent runs the applicable installation command. 4. The command downloads the current remote response without integrity verification. 5. Bash or PowerShell immediately interpr ...[truncated 964 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Remove direct `curl | bash` and `irm | iex` installation commands. 2. Direct users to a version-pinned official release artifact rather than a mutable installer endpoint. 3. Download the artifact without executing it: - Use `curl` or PowerShell only to save the installer to a local file. - Display the source URL and destination clearly. 4. Publish and verify a cryptographic SHA-256 or stronger checksum before execution. 5. Prefer a signed package or installer and validate its signature against a documented publisher key. 6. Allow the user to inspect the downloaded script before explicitly executing it. 7. Prefer trusted operating-system package managers where packages are signed and versions can be pinned. 8. Run installation with ordinary user privileges unless a documented installation step strictly requires elevation. 9. Document the installer’s expected filesystem changes, network access, and required permissions. 10. Preserve the existing behavior of attempting installation only after a confirmed `oo: command not found` error, but require explicit user approval before downloading or executing installer code. ]]>
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)

Description-Behavior Mismatch

High
Confidence
98% confidence
Finding
The manifest and description frame the skill as limited to searching and reading data, but the body instructs use for any Demodesk action and discusses write/destructive operations. That mismatch can cause downstream agents or users to grant broader trust than warranted, increasing the chance of unintended state-changing actions if mutating connector actions are later exposed.

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 instructs users to install software by piping a remote script directly into a shell. This is a classic supply-chain risk: if the remote endpoint, transport, or distribution pipeline is compromised, arbitrary code executes immediately on the host with the user's privileges.

Vague Triggers

Medium
Confidence
95% confidence
Finding
The instruction to use this skill for ANY Demodesk-related request is overly broad and can crowd out safer, narrower handling paths. Broad trigger phrases increase the chance an agent invokes the skill in contexts beyond its verified scope, especially given the ambiguous documentation around possible mutating actions.

Intent-Code Divergence

Medium
Confidence
84% confidence
Finding
The file explains that actions changing state are tagged '[write]' or '[destructive]' and provides safety rules for such operations, implying the skill includes them. But the enumerated 'Available actions' section only lists get/list/batch_get operations and shows no write or destructive actions. This creates an intent/documentation mismatch about what the skill actually exposes.

Static analysis

No suspicious patterns detected.