Back to skill

Security audit

OmniMemory Full Onboarding

Security checks for vulnerabilities and agentic risk

Overview

This skill performs the advertised OmniMemory setup, but it would collect sensitive credentials in chat, send them to an unexplained domain, install an unpinned plugin, and enable automatic memory capture by default.

Install only if you trust the OmniMemory operator, the sealoshzh.site endpoint, and the @omni-pt package publisher. Prefer a first-party browser or OAuth-style setup for account credentials and LLM keys, avoid reused passwords or high-value provider keys, and disable autoCapture unless you intentionally want future conversation content stored remotely.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
Findings (3)

other

Error
Location
SKILL.md:22
Finding

Sensitive Credentials Are Collected and Transmitted to an Unverified External Domain

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 22-24, 31-35, 48-58
Vulnerability Type: Credential disclosure to an external service
Risk Level: High

Vulnerable Code Snippet:

text
- Use the fixed base URL `https://zdfdulpnyaci.sealoshzh.site`.
- Never log or repeat full secrets unless the user explicitly asks for a raw value.
- Treat password, otp, access_token, refresh_token, api_key_plaintext, and external_llm_api_key as secrets.
text
Ask only for the blocking inputs first:
- email
- password
- name
- api_key_label
- external_llm_api_key

Ask only when needed:
- otp
- provider
- model_name
text
Step 1: call `POST /auth/register/request` with email, password, and name.
- If the backend returns a usable session, continue.
- If it returns `pending_verification`, ask for otp and call `POST /auth/register/verify`.
text
Step 3: configure the external LLM key.
- If provider and model_name are known, validate with `GET /llm-models?provider=...` and then call `POST /llm-keys`.
- If either is missing, call `GET /llm-platforms`, ask the user to choose one, then call `GET /llm-models?provider=...`, ask the user to choose one, and finally call `POST /llm-keys`.

Technical Analysis

The Skill instructs the Agent to request passwords, OTPs, API tokens, and third-party LLM API keys and send them to a fixed host under sealoshzh.site. This domain does not visibly correspond to the OmniMemory brand presented by the Skill. The reviewed files provide no independent endpoint verification, certificate pinning, documented trust relationship, OAuth or device authorization flow, or mechanism allowing the user to enter credentials directly into a trusted first-party interface.

The instruction to avoid logging or repeating secrets only limits incidental disclosure in responses. It does not mitigate disclosure to the remote service receiving the API request ...[truncated 1159 chars]

Remediation
View remediation

Remediation Suggestions

  • Do not request or process a user's account password, OTP, or third-party provider key through the Agent conversation.
  • Replace password collection with a verified first-party browser-based OAuth, device authorization, or short-lived authorization-code flow.
  • Host all account and API endpoints on a documented, verified first-party domain controlled by the advertised vendor.
  • Require explicit user confirmation before transmitting any credential or token.
  • Use narrowly scoped, revocable, short-lived tokens instead of reusable provider keys.
  • Document the recipient, purpose, retention period, deletion process, and security controls for every collected secret.
  • Independently verify endpoint ownership and publish authenticated API documentation.
  • Ensure secrets are excluded from conversation history, telemetry, command history, logs, crash reports, and generated summaries.

T05 · Unauthorized Access and Privilege Escalation

Error
Location
SKILL.md:67
Finding

Automatic Conversation Capture Is Enabled Without Granular Consent or Data-Handling Controls

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 67-71
Vulnerability Type: Excessive data access and automatic remote ingestion
Risk Level: High

Vulnerable Code Snippet:

text
`openclaw config set plugins.entries.omnimemory-overlay.config.baseUrl "https://zdfdulpnyaci.sealoshzh.site/api/v1/memory"`
`openclaw config set plugins.entries.omnimemory-overlay.config.apiKey "YOUR_FIRST_PARTY_API_KEY"`
`openclaw config set plugins.entries.omnimemory-overlay.config.groupPrefix "openclaw"`
`openclaw config set plugins.entries.omnimemory-overlay.config.autoRecall true`
`openclaw config set plugins.entries.omnimemory-overlay.config.autoCapture true`

The same configuration is repeated in references/setup-guide.md, lines 11-16:

bash
openclaw config set plugins.entries.omnimemory-overlay.config.baseUrl "https://zdfdulpnyaci.sealoshzh.site/api/v1/memory"
openclaw config set plugins.entries.omnimemory-overlay.config.apiKey "^USER_API_KEY^"
openclaw config set plugins.entries.omnimemory-overlay.config.groupPrefix "openclaw"
openclaw config set plugins.entries.omnimemory-overlay.config.autoRecall true
openclaw config set plugins.entries.omnimemory-overlay.config.autoCapture true

Technical Analysis

The prescribed configuration enables autoCapture by default and sends captured memory to a remote API. The Skill does not define which messages or lifecycle events are captured, whether sensitive fields are filtered, how long data is retained, who can access it, or how users can review and delete it. It also does not require informed consent for automatic ingestion.

Because Agent conversations can contain credentials, personal information, proprietary code, internal documentation, or confidential business data, automatic capture expands the remote service's access beyond the minimum permissions needed merely to install and test the plugin. Enabling autoRecall also permits remotely stored co ...[truncated 1013 chars]

Remediation
View remediation

Remediation Suggestions

  • Set autoCapture to false by default.
  • Require explicit, informed, and revocable user consent before enabling automatic capture.
  • Provide granular controls for conversations, message types, fields, workspaces, and lifecycle events eligible for ingestion.
  • Apply local secret detection and redaction before any transmission.
  • Clearly disclose the destination, captured data categories, retention period, access controls, and deletion procedure.
  • Provide commands to inspect, export, delete, and disable stored memory.
  • Use encryption in transit and at rest, tenant isolation, least-privilege access controls, and auditable access logs.
  • Obtain separate confirmation before enabling remote recall to influence future Agent responses.

T08 · Insecure Dependencies

Error
Location
SKILL.md:63
Finding

Unpinned Third-Party Plugin Is Installed Without Integrity or Provenance Verification

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 63-64
Vulnerability Type: Mutable third-party dependency installation
Risk Level: High

Vulnerable Code Snippet:

text
Install the plugin:
`openclaw plugins install @omni-pt/omnimemory-overlay`

The same installation command appears in references/setup-guide.md, lines 3-7:

bash
openclaw plugins install @omni-pt/omnimemory-overlay

Technical Analysis

The installation command identifies only a package name and does not pin an audited version, integrity digest, lockfile entry, or trusted provenance record. Consequently, the effective code installed during execution can differ from the code that was originally reviewed.

A compromised publisher account, registry compromise, malicious future release, or package ownership transfer could cause the command to resolve to attacker-controlled code. The project contains no copy of the plugin source from which its runtime behavior can be audited, and no verification step is required before installation.

Attack Path

  1. An attacker compromises the package publisher, registry entry, or release process for @omni-pt/omnimemory-overlay.
  2. The attacker publishes a malicious version under the same package name.
  3. A user invokes this Skill after the malicious release becomes current.
  4. The unpinned installation command resolves to and installs the malicious version.
  5. OpenClaw loads the plugin under the permissions available to its plugin environment.
  6. The plugin can abuse those available permissions to access conversation data, configuration, API keys, or other reachable resources.

Impact Assessment

Impact is bounded by the permissions granted to OpenClaw plugins but could include arbitrary plugin behavior, theft of configured API keys, interception of conversation content, unauthorized network requests, configuration modification, or compromise of resources accessible to ...[truncated 176 chars]

Remediation
View remediation

Remediation Suggestions

  • Pin the plugin to a specifically audited version rather than resolving the current registry release.
  • Verify a cryptographic integrity digest before installation.
  • Require signed package provenance and verify the publisher identity and build source.
  • Include a lockfile or equivalent immutable dependency manifest.
  • Review and retain the exact plugin source corresponding to the approved artifact.
  • Display the package version, integrity value, requested permissions, and source registry before requesting installation confirmation.
  • Run the plugin with least privilege, restricting filesystem, network, configuration, and secret access.
  • Establish an update process that subjects each new version to security review before deployment.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (8)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill description advertises end-to-end onboarding, API key creation, and third-party key binding but does not prominently warn users that they may be asked for passwords, OTPs, and API keys or that account and local system changes will be performed. This omission can lead users to disclose sensitive credentials or approve risky actions without informed consent.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The trigger phrase and workflow framing are broad enough to activate on generic support-style requests such as installing or fixing OmniMemory, which can cause the agent to initiate account creation, credential handling, plugin installation, and configuration changes without sufficiently explicit user intent for those sensitive actions. In a skill that performs registration and secret management, overbroad invocation increases the chance of unintended privileged operations.

Content

No source excerpt is available for this finding.

Ssd 3

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill normalizes collecting highly sensitive secrets such as passwords, OTPs, access tokens, refresh tokens, first-party API keys, and external LLM API keys as standard onboarding inputs. Even though it says to mask and not log secrets, centralizing collection and reuse of multiple credential types through the agent creates a large attack surface for accidental disclosure, misuse, session takeover, or cross-service compromise.

Content

No source excerpt is available for this finding.

Ssd 3

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The smoke test instructs the agent to store and retrieve a user-like personal preference in memory to validate the system. Although the sample data is low sensitivity, it conditions the workflow to write user-associated personal data into a memory system without first requiring opt-in, data minimization, or use of synthetic test content clearly detached from the user.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The setup guide explicitly enables automatic memory recall and capture, which can cause user prompts, conversation content, and potentially sensitive data to be transmitted to an external memory service without any accompanying warning, consent step, or data-handling explanation. In the context of an onboarding/install skill, this is more dangerous because users are likely to apply the configuration verbatim and may not realize that persistent collection and retrieval are being turned on by default.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
96% confidence
Finding

When repeated onboarding attempts fail, the skill directs the user specifically to a Chinese-language URL path (/zh/) without indicating that language selection is optional. This imposes a locale choice on the user and may conflict with language or locale policies requiring opt-in.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
96% confidence
Finding

The failure-handling instruction again hard-codes a Chinese-language URL (/zh/) as the destination for repeated onboarding failures. Because no user language preference is requested or justified, this is a natural-language locale policy issue.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

The troubleshooting guide includes configuration cleanup commands that remove stored plugin settings, including the API key and other operational values, without an explicit warning that these values will be deleted and may need to be re-entered. In an onboarding and repair skill, users may copy-paste these commands directly, causing accidental loss of working configuration and service interruption.

Content

No source excerpt is available for this finding.