Back to skill

Security audit

Gmail

Security checks for vulnerabilities and agentic risk

Overview

This Gmail skill is mostly coherent, but its fallback setup tells users to run an unverified internet installer, which needs review before installation.

Review the OOMOL CLI installation path before installing. Prefer a signed or checksum-verified installer, and only connect Gmail if you are comfortable letting OOMOL's connector process the Gmail requests and data needed for each action.

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:98
Finding
Remote CLI Installers Are Downloaded and Executed Without Integrity Verification<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 98–106 **Vulnerability Type**: Remote payload retrieval and execution **Risk Level**: High The first-time setup instructions execute remotely hosted installation scripts directly in the user's shell: ```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 giving the user or agent an opportunity to inspect the downloaded content: - On macOS and Linux, `curl` sends the response body directly to `bash`. - On Windows, `Invoke-RestMethod` (`irm`) sends the response directly to `Invoke-Expression` (`iex`). - No expected version, cryptographic hash, or digital signature is specified or verified. - The effective code is controlled by the content served from `cli.oomol.com` at execution time and can therefore differ from the content reviewed during this audit. - HTTPS protects data in transit but does not protect against a compromised hosting account, origin server, deployment pipeline, DNS/TLS trust chain, or malicious future modification by an authorized publisher. Installing the CLI may be necessary for the skill's declared Gmail functionality. However, immediate execution of mutable remote code exceeds the minimum safe installation privilege because the same objective can be achieved through a versioned package, a separately downloaded script, or a signed artifact verified before execution. The document limits installation to cases where `oo` is missing, which reduces exposure, but it does not eliminate the remote-code-execution risk when that fallback is used. ### Attack Path 1. An attacker compromises the installer host, publishing pipelin ...[truncated 2295 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Remove direct `curl | bash` and `irm | iex` installation patterns. 2. Pin installation instructions to a specific, reviewed CLI release rather than a mutable generic installer endpoint. 3. Download the artifact and its checksum or signature as separate steps. 4. Verify a SHA-256 digest against a value published through an independently protected release channel, or verify a digital signature using a pinned publisher key. 5. Execute the installer only after successful verification and, where practical, explicit user review and approval. 6. Prefer an authenticated operating-system package manager or signed platform-native installer with version pinning. 7. Do not request administrator privileges unless a documented installation step strictly requires them. 8. Store temporary downloads in a newly created, permission-restricted directory and remove them after installation. 9. Document the external processing boundary for Gmail payloads, including the categories of data transmitted, retention policy, and relevant privacy controls. 10. A safer Unix-style workflow would follow this pattern, using a real release-specific digest supplied by the publisher: ```bash curl -fL -o oo-install.sh "https://cli.oomol.com/releases/<pinned-version>/install.sh" printf '%s %s\n' '<trusted-sha256>' 'oo-install.sh' | sha256sum --check - less oo-install.sh bash oo-install.sh rm -f oo-install.sh ``` The Windows process should likewise download a pinned artifact, validate an Authenticode signature or independently published cryptographic hash, and only then execute it. ]]>
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
97% confidence
Finding
The skill instructs the agent to execute a remote installation script via 'curl ... | bash', which is a classic supply-chain and arbitrary code execution risk. Because the script is fetched at runtime from the network and piped directly to a shell without verification, a compromised host, CDN, DNS path, or upstream publisher could execute attacker-controlled code on the local system.

Vague Triggers

Medium
Confidence
97% confidence
Finding
The manifest description says to use this skill for ANY Gmail request and instead of calling the API directly, which is an overly broad routing trigger. This can cause the agent to invoke a high-privilege Gmail skill for loosely related tasks, increasing the chance of unnecessary access to mailbox data or unintended state-changing operations.

Static analysis

No suspicious patterns detected.