Back to skill

Security audit

CustomGPT.ai

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly coherent for using CustomGPT.ai through OOMOL, but its fallback setup tells users to execute a mutable remote installer directly in a shell.

Install only if you are comfortable using OOMOL as the CustomGPT.ai connector and avoid running the documented pipe-to-shell installer blindly. Prefer installing the oo CLI through a verified package or by downloading, inspecting, and verifying the installer before execution; confirm any write action payload 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:61
Finding
Unverified Remote Installation Scripts Are Executed Directly<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 61–65 **Vulnerability Type**: Remote payload retrieval and immediate 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 download scripts from an external server and immediately pass their contents to a command interpreter. The effective code executed by these commands is not contained in the reviewed Skill and can change after the Skill has been audited. Neither installation path pins a release nor verifies a cryptographic signature or checksum. HTTPS provides transport protection but does not establish that the returned script matches an independently reviewed artifact. Compromise of the hosting service, publishing credentials, DNS infrastructure, or distribution pipeline could therefore result in arbitrary code being returned and executed. The behavior is presented as a fallback when the `oo` command is unavailable. Installing the declared CLI may be necessary to use the Skill, but immediate execution of mutable network content exceeds the minimum privileges and trust required for installation. The same risk exists in both the Bash and PowerShell commands. ### Attack Path 1. A CustomGPT.ai action is requested while the `oo` CLI is unavailable. 2. The attempted action fails with an `oo: command not found` error. 3. The installation fallback is followed. 4. `curl` or `Invoke-RestMethod` retrieves the current script from `cli.oomol.com`. 5. The response is passed directly to Bash or `Invoke-Expression` without being saved, inspected, pinned, or authenticated against a trusted checksum or signature. 6. If the remote origin or its delivery pipeline has been compromised, attacker-controlled commands execute with the permissions of the user running the instal ...[truncated 1034 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Remove both pipe-to-shell installation commands. 2. Pin installation instructions to a specific, reviewed CLI version rather than a mutable installation endpoint. 3. Download the installer or release artifact to a local file without executing it immediately. 4. Verify the artifact using a cryptographic signature from a separately authenticated trust root. If signatures are unavailable, publish and verify a version-specific SHA-256 checksum obtained through an independent trusted channel. 5. Abort installation if verification fails; do not provide an option that silently bypasses integrity checks. 6. Allow the user or administrator to inspect the downloaded script before execution. 7. Prefer signed platform-native packages or official package repositories that provide integrity validation and version pinning. 8. Run installation with ordinary user privileges unless a specific operation demonstrably requires elevation. If elevation is necessary, isolate and document the exact privileged operation rather than running the complete remote installer with elevated rights. 9. For PowerShell, avoid `Invoke-Expression`; save the script, validate its signature and hash, and invoke the verified local file with an appropriate execution policy. 10. Document the network destinations, files created, permissions required, and expected post-installation changes so users can evaluate the installation's scope. ]]>
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
99% confidence
Finding
The skill includes a `curl ... | bash` installation command that downloads and immediately executes a remote script, which is a classic supply-chain and remote code execution risk. If the install endpoint, transport, or upstream release process is compromised, users may run attacker-controlled code on their system directly from guidance embedded in the skill.

Vague Triggers

Medium
Confidence
97% confidence
Finding
The trigger text is overly broad because it instructs use of this skill for ANY CustomGPT.ai-related request, including read, create, and update operations, without narrowing scope by task type or risk level. Broad routing increases the chance the skill is invoked in inappropriate contexts and can funnel sensitive or state-changing requests into a connector-backed workflow without sufficient per-action gating.

Static analysis

No suspicious patterns detected.