Cortex Memory

Security checks across malware telemetry and agentic risk

Overview

Cortex Memory appears to be a coherent long-term memory plugin, but it persists conversation history and its CLI may print API-key-bearing configuration without redaction.

Install this only if you want OpenClaw to maintain cross-session memory. Use environment variables rather than literal API keys, do not share status/config output, review or disable automatic sync if you do not want old conversations imported, and configure only trusted embedding or LLM endpoints.

VirusTotal

No VirusTotal findings

View on VirusTotal

Risk analysis

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

#
ASI01: Agent Goal Hijack
Low
What this means

The agent may proactively search memory before answering some questions and may treat memory-tool use as a normal part of its workflow.

Why it was flagged

The skill provides system-prompt-style instructions that direct when the agent must use memory tools. This is aligned with the memory purpose, but users should notice that it can shape agent behavior.

Skill content
Agent 使用手册(系统提示词)... “Cortex Memory 记忆插件使用规则(核心规则,不允许删除)” ... “必须遵循以下规则” ... “先调用 `search_memory`,再回答”
Recommendation

Use these rules only if you want Cortex Memory to influence the agent’s workflow, and keep higher-priority privacy or task instructions explicit.

#
ASI02: Tool Misuse and Exploitation
Low
What this means

The skill can change the agent’s long-term memory store, including adding imported history or deleting specific memories.

Why it was flagged

The registered tools can write, sync, backfill, and delete persistent memory. The documentation includes an explicit confirmation rule for deletion, so this is purpose-aligned but still a meaningful capability.

Skill content
`store_event` ... `sync_memory` ... `backfill_embeddings` ... `delete_memory` ... “仅在用户明确要求删除记忆,且已确认 `memory_id` 时,才调用 `delete_memory`”
Recommendation

Confirm high-impact memory operations, especially sync, backfill, conflict resolution, and deletion.

#
ASI03: Identity and Privilege Abuse
Low
What this means

Users may need to provide API keys for external AI services, even though the registry metadata says no credential is required.

Why it was flagged

The documented configuration uses embedding and LLM provider API keys. This is expected for the stated embedding/LLM features, but the registry metadata does not declare credentials.

Skill content
"embedding": { ... "apiKey": "${EMBEDDING_API_KEY}", "baseURL": "https://your-embedding-endpoint/v1" ... }, "llm": { ... "apiKey": "${LLM_API_KEY}"
Recommendation

Prefer environment-variable references over literal keys in config files, and use least-privilege provider keys where possible.

#
ASI03: Identity and Privilege Abuse
Medium
What this means

A user running or sharing `cortex-memory status` output could accidentally reveal provider API keys if they are stored directly in the OpenClaw config.

Why it was flagged

The status command prints the entire plugin configuration. Because the documented config contains `apiKey` fields, real keys placed in the config could be exposed in terminal output or copied logs.

Skill content
console.log('\nConfiguration:');
console.log(JSON.stringify(pluginConfig || { enabled: true }, null, 2));
Recommendation

Redact secret-looking fields in status output, and avoid sharing command output or config files that may contain API keys.

#
ASI06: Memory and Context Poisoning
Medium
What this means

Conversation history, preferences, project decisions, and derived rules may be recalled in future sessions.

Why it was flagged

The skill intentionally persists memory across sessions, imports historical sessions, and writes reusable rules. This is core to the purpose but means sensitive or incorrect memories can affect later tasks.

Skill content
“跨会话中持续积累并稳定调用高价值记忆” ... “增量同步:按状态文件增量导入历史会话” ... “规则写入 `CORTEX_RULES.md` 供后续任务复用”
Recommendation

Review what is stored, honor “do not remember” requests, disable automatic sync if undesired, and use `delete_memory` or cleanup controls when needed.

#
ASI07: Insecure Inter-Agent Communication
Medium
What this means

Stored or synced memory text may be transmitted to the embedding provider configured by the user.

Why it was flagged

Memory text is sent to a configured embedding endpoint using a bearer API key. This is expected for embeddings, but it means memory content can leave the local environment.

Skill content
const body = { input: args.text, model: args.model };
...
fetch(endpoint, { method: "POST", headers: { "content-type": "application/json", authorization: `Bearer ${args.apiKey}` }, body: JSON.stringify(body) })
Recommendation

Only configure trusted embedding/LLM endpoints, understand their data-retention policy, and avoid storing secrets or highly sensitive data in long-term memory.