Back to skill

Security audit

Nylas

Security checks for vulnerabilities and agentic risk

Overview

This Nylas skill is a mostly read-oriented OOMOL CLI wrapper, but its setup instructions tell users to execute unverified remote installer scripts.

Review before installing. Use a trusted, verifiable method to install the oo CLI rather than piping remote scripts directly into a shell, and only connect Nylas if you are comfortable routing grant, calendar, and event data through OOMOL. Treat any future write or destructive connector action as requiring explicit confirmation.

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:55
Finding
Unverified Remote Installer Retrieval and Execution## Vulnerability Details **File Location**: `SKILL.md`, lines 55–62 **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 setup instructions download scripts from external URLs and immediately execute their contents using Bash or PowerShell. Neither command pins a version, verifies a cryptographic checksum or signature, nor provides an inspection step before execution. Although installing the `oo` CLI supports the declared Nylas integration, piping mutable remote content directly into an interpreter exceeds the minimum behavior necessary to install that dependency. HTTPS protects data in transit but does not guarantee that the delivered script is safe if the hosting account, server, DNS, certificate issuance process, or delivery infrastructure is compromised. It also does not prevent the publisher from changing the effective payload after this Skill has been audited. The PowerShell command is equivalent in security effect to the Bash command: `irm` retrieves arbitrary remote content and `iex` evaluates it as code. ### Attack Path 1. A user or agent attempts to use the Skill on a system where the `oo` CLI is unavailable. 2. The command fails with `oo: command not found`. 3. Following the first-time setup instructions, the user or agent executes one of the documented installer pipelines. 4. The external server returns the installer content available at that moment. 5. Bash or PowerShell executes the response without integrity verification or prior inspection. 6. If the distribution channel or payload is compromised, attacker-controlled code runs with the permissions of the invoking account. ### Impact Assessment A malicious installer could obtain arbitrary code execution under the invoking user's priv ...[truncated 868 chars]
Remediation
## Remediation Suggestions 1. Remove both direct download-to-interpreter pipelines. 2. Publish versioned installer artifacts through a documented, trusted release channel. 3. Require users to download the selected artifact without executing it immediately. 4. Pin the CLI to an explicit version rather than retrieving a mutable latest installer. 5. Publish cryptographic checksums or signed release manifests through an independently authenticated channel. 6. Verify the artifact's signature or checksum before execution, and abort installation if verification fails. 7. Separate download, inspection, verification, and execution into distinct documented commands. 8. Prefer a reputable platform package manager where package provenance and signature validation are available. 9. Document the installer's expected files, permission changes, subprocesses, and network destinations. 10. Avoid elevated execution unless a specific installation step requires it; clearly explain and minimize any such privilege requirement.
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)

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 via a remote script piped directly into a shell, which executes unreviewed code from the network. If the distribution endpoint, TLS trust chain, or upstream content is compromised, this becomes an immediate arbitrary code execution path on the user's machine.

Description-Behavior Mismatch

Medium
Confidence
95% confidence
Finding
The manifest and description position the skill as suitable for 'searching and reading data', but the body explicitly allows for write and destructive actions. This mismatch can cause an orchestrating agent or user to invoke the skill under the assumption it is read-only, increasing the risk of unintended state changes in Nylas if additional actions are later exposed or misclassified.

Vague Triggers

Medium
Confidence
95% confidence
Finding
The instruction to use this skill for 'ANY Nylas request' is overly broad and can force routing of all Nylas-related tasks through this skill without evaluating least privilege or task suitability. Broad triggers increase accidental invocation and make it easier for future higher-risk capabilities in the skill to be used inappropriately.

Intent-Code Divergence

Low
Confidence
76% confidence
Finding
The safety section states that untagged actions are reads, while also discussing write/destructive actions generally, yet the listed actions are all untagged. This inconsistent policy language can mislead agents into trusting omission-based tagging rather than enforcing an allowlist of known-safe actions, which becomes dangerous if the action list changes or tags are incomplete.

Static analysis

No suspicious patterns detected.