Back to skill

Security audit

Lattice

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly coherent for reading Lattice data, but its setup path tells an agent to run an unverified remote installer when the CLI is missing.

Install only if you trust OOMOL and are comfortable with Lattice data flowing through its connector. Avoid letting an agent run the installer commands automatically; install the oo CLI through a verified, pinned, or manually inspected method first, then use the skill for the listed read-only Lattice 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 Execution## Vulnerability Details **File Location**: `SKILL.md`, lines 62–66 **Vulnerability Type**: Remote payload retrieval and execution **Risk Level**: High **Complete Code Snippet**: ```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 first-time setup instructions retrieve mutable scripts from external URLs and execute them immediately through Bash or PowerShell. Neither installation path pins a release version, validates a cryptographic digest or publisher signature, presents the downloaded content for inspection, nor explicitly asks the user to approve execution. HTTPS protects data in transit but does not establish that the current script is identical to the version reviewed with this Skill. If the hosting service, publishing account, delivery infrastructure, or remote installer is compromised or modified, arbitrary code can be supplied after the Skill has passed review. The PowerShell use of `Invoke-Expression` (`iex`) presents the same fundamental risk as piping `curl` output into Bash. Installing the `oo` CLI may be necessary to use the declared Lattice connector, but immediate execution of an unverified, remotely mutable installer exceeds the minimum privilege and trust required. A verified, version-pinned installation process would provide the same functionality with a smaller supply-chain attack surface. ### Attack Path 1. A user asks the Agent to perform a Lattice operation. 2. The Agent attempts to invoke `oo`, but the command is unavailable. 3. Following the first-time setup instructions, the Agent requests the installer from `cli.oomol.com`. 4. An attacker who has compromised the installer, its publishing channel, or its delivery infrastructure returns modified script content. 5. The shell executes the response immediately without integrity verification or prior inspection. 6. The malicious insta ...[truncated 721 chars]
Remediation
## Remediation Suggestions 1. Remove both pipe-to-shell installation patterns, including `curl | bash` and `Invoke-Expression`. 2. Prefer a trusted package manager or a documented manual installation workflow. 3. Pin the CLI to a specific reviewed release rather than downloading a mutable latest installer. 4. Download the artifact without executing it, then verify a publisher signature and a separately distributed, pinned SHA-256 digest. 5. Present the source, version, destination, and intended installation effects to the user before execution. 6. Require explicit user approval before running any installer. 7. Execute the installer with the least privileges required and do not request elevation unless it is essential and separately approved. 8. If script-based installation remains unavoidable, save the script locally, validate it, allow inspection, and invoke it as a separate command only after verification. 9. Document that Lattice request and response data is processed through OOMOL’s connector infrastructure so users can make an informed decision before transmitting business data.
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 (3)

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/user to execute a remote installation script via 'curl ... | bash', which is a classic supply-chain and arbitrary code execution risk. If the remote host, distribution path, TLS trust chain, or delivered script is compromised, the command executes attacker-controlled code immediately in the local environment.

Vague Triggers

Medium
Confidence
94% confidence
Finding
The trigger text says to use this skill for ANY Lattice request and instead of calling the API directly, which is broad enough to cause over-invocation whenever Lattice is merely mentioned. In an agentic system, such broad routing can send unrelated or overly sensitive tasks through this skill without adequate task-specific validation or least-privilege selection.

Description-Behavior Mismatch

Medium
Confidence
96% confidence
Finding
The manifest and top-level description frame the skill as only for 'searching and reading data,' but the body explicitly includes guidance for potentially state-changing actions and confirmation flows for write/destructive operations. This mismatch can mislead routing, review, or policy systems into granting or invoking the skill under read-only assumptions, increasing the chance of unintended privileged use if write actions are later exposed.

Static analysis

No suspicious patterns detected.