Back to skill

Security audit

SafetyCulture

Security checks for vulnerabilities and agentic risk

Overview

This SafetyCulture skill is mostly purpose-aligned, but its first-time setup includes unverified remote installer commands that can execute arbitrary code on the user's machine.

Review this skill before installing if you are comfortable with OOMOL and SafetyCulture account operations. Do not run the documented installer commands blindly; prefer an official reviewed install path, verify the installer where possible, and confirm any write payload before allowing changes to SafetyCulture data.

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
Unverified Remote Installer Download and Immediate Shell Execution<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 59–63 **Vulnerability Type**: Remote payload retrieval and 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 retrieve mutable scripts from an external server and immediately execute the returned content through Bash or PowerShell. Neither command pins the installer to a reviewed version nor performs cryptographic signature or checksum verification before execution. HTTPS protects the connection in transit but does not establish that the retrieved script is the same artifact that was reviewed. Compromise of the hosting infrastructure, publishing account, DNS configuration, or installer build pipeline could cause arbitrary replacement content to execute. The pipeline also prevents a normal inspection step before execution. Installing the CLI may be necessary when it is unavailable, but direct remote-to-shell execution is not the minimum privilege or safest method required to perform that installation. ### Attack Path 1. A SafetyCulture operation fails because the `oo` CLI is not installed. 2. The Agent or user follows the documented first-time setup procedure. 3. `curl` or `Invoke-RestMethod` requests the current installer from `cli.oomol.com`. 4. A compromised hosting or delivery component returns attacker-controlled script content. 5. The pipe passes that content directly to Bash or `Invoke-Expression`. 6. The payload executes immediately without version validation, integrity verification, or prior inspection. 7. The payload can perform any action available to the invoking user and can attempt further privilege escalation if local conditions permit. ### Impact Assessment Successful exploitation provides arbitrary command execution with the privileges ...[truncated 767 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Remove all `curl | bash` and `Invoke-RestMethod | Invoke-Expression` installation instructions. 2. Publish immutable, versioned installer artifacts through an official release channel. 3. Pin the documentation to a specific reviewed CLI version rather than a mutable installer endpoint. 4. Download the artifact to a local file without executing it: ```bash curl -fL -o oo-installer.sh "https://example.invalid/releases/<version>/install.sh" ``` 5. Publish a cryptographic checksum or signed release manifest through an independently protected channel. 6. Verify the checksum or digital signature before execution and terminate installation if validation fails. 7. Allow the installer to be inspected before execution, then require explicit user approval before running it. 8. Prefer a trusted package manager with signed packages and repository metadata where supported. 9. Run installation with ordinary user privileges unless a specific installation step demonstrably requires elevation. 10. Document the files, network destinations, and permissions used by the installer so users can assess its 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
98% confidence
Finding
The skill instructs the agent to install software by piping a remotely fetched script directly into a shell (`curl ... | bash`). This is a classic supply-chain and remote code execution risk: if the host, script, transport, or upstream distribution is compromised, arbitrary code would run immediately on the user's machine with the current user's privileges.

Vague Triggers

Medium
Confidence
95% confidence
Finding
The trigger phrase "Use this skill for ANY SafetyCulture request" is overly broad and can cause the agent to route loosely related or ambiguous requests into this skill without clear scope checks. In practice, broad routing increases the chance of inappropriate tool invocation, including unnecessary access to connected third-party data or execution of write-capable actions when a narrower skill or no tool use would be more appropriate.

Static analysis

No suspicious patterns detected.