Back to skill

Security audit

向量记忆自我进化系统

Security checks for vulnerabilities and agentic risk

Overview

This skill is a local vector-memory system, but it stores and reuses user-derived data persistently with weak privacy controls and some unsupported safety claims.

Install only if you want a durable local memory system. Treat captured memories and vectors as sensitive, avoid enabling autoCapture or cron until reviewed, verify what service owns localhost:11434, do not store secrets, and require manual review before anything is written to SOUL.md or reused as future agent guidance.

Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Rogue AgentSelf-Modification, Session Persistence
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (15)

Lp3

Medium
Category
MCP Least Privilege
Confidence
90% confidence
Finding
The skill documents file read/write and local network behavior but does not declare permissions, which undermines informed consent and platform enforcement. In this context, the skill persists memory, archives data, and calls a local embedding service, so the missing permission declaration hides real capability surface rather than being a harmless documentation gap.

Tp4

High
Category
MCP Tool Poisoning
Confidence
92% confidence
Finding
The documented behavior exceeds and diverges from the declared purpose, including persistent conflict logging, local HTTP embedding calls, sensitive-data processing, and inconsistent or incomplete implementations. Security review depends on accurate declarations; when actual behaviors are broader and parts appear mismatched, users and reviewers cannot reliably assess privacy, integrity, or failure modes.

Missing User Warnings

Medium
Confidence
89% confidence
Finding
The README prominently advertises automatic learning from errors and corrections, but it does not warn that commands, error messages, corrections, and other user-provided content may be stored in a vector database. In an agent skill context, that can lead to unintended retention of sensitive operational data, credentials embedded in commands, proprietary code fragments, or personal information, especially because users may assume examples are harmless and enable the feature without understanding persistence.

Missing User Warnings

Medium
Confidence
94% confidence
Finding
The documented configuration enables autoCapture without any adjacent warning about privacy, retention, or the downstream effects of automatically persisting user interactions. In this skill's context, auto-capture increases risk because the system is specifically designed to accumulate commands, errors, corrections, and practices over time, making accidental collection of sensitive data more likely and more scalable.

Missing User Warnings

Medium
Confidence
89% confidence
Finding
The skill openly describes automatic capture and persistence of corrections, errors, events, and memory, but does not clearly warn about privacy impact, retention period, or downstream reuse in search and evolution reports. Because this system is specifically designed to accumulate and resurface user-derived content, insufficient notice creates meaningful confidentiality and compliance risk.

Missing User Warnings

Medium
Confidence
86% confidence
Finding
The troubleshooting section includes forceful process termination and package reinstallation commands without warning users about possible service disruption or system package impact. Even as documentation, these commands can cause collateral damage when copied blindly, especially in shared or production-like environments.

Missing User Warnings

Medium
Confidence
98% confidence
Finding
The CLI demo path prints the raw input with `print(f"原文: {text}")` before showing the redacted version, which can directly disclose secrets provided on the command line. In this skill's context—a memory/logging and redaction utility intended to handle sensitive data—printing secrets defeats the purpose of the tool and increases risk of exposure through terminal history, logs, screenshots, or process monitoring.

Missing User Warnings

Medium
Confidence
91% confidence
Finding
This test script prints stored document snippets and associated metadata directly from the persistent vector database to stdout. In a memory/self-evolution skill, the vector store may contain user prompts, corrections, operational notes, or other sensitive context, so exposing even sample records can leak private data into terminals, logs, screenshots, or CI output.

Missing User Warnings

Medium
Confidence
92% confidence
Finding
The script sends full memory text to an embedding service over unauthenticated plain HTTP, with no consent prompt, filtering, or visibility into what may be disclosed. Even though the destination is localhost, these memories may contain sensitive user data and could be exposed to any local service bound to that port, a misconfigured proxy, logs, or a compromised host.

Ssd 3

Medium
Confidence
91% confidence
Finding
The skill promotes automatic recording of user corrections, events, and chat-related memory into persistent stores and evolution artifacts, which creates semantic leakage risk even if obvious secrets are redacted. Sensitive business context, personal data, and behavioral history can still be reconstructed or resurfaced through summaries and vector search.

Ssd 3

Medium
Confidence
91% confidence
Finding
The four-layer architecture explicitly moves user-provided material from short-term memory into long-term archive and vector search, increasing exposure duration and retrieval pathways. In a memory skill, that context makes the risk more acute because the core design goal is persistence and resurfacing, not ephemeral task completion.

Ssd 3

Medium
Confidence
88% confidence
Finding
The documented 'complete evolution flow' includes chat-record analysis and future planning, implying broader collection and summarization of conversational content than is necessary for immediate operation. This expands the attack surface for privacy leakage and increases the chance that sensitive context is retained or later exposed through reports.

External Transmission

Medium
Category
Data Exfiltration
Content
def get_embedding(text):
    """获取 BGE 向量"""
    try:
        response = requests.post(
            'http://localhost:11434/api/embeddings',
            json={
                'prompt': text  # BGE 服务使用 prompt 字段
Confidence
94% confidence
Finding
The external transmission finding is valid because the request body includes raw `text` under `prompt`, meaning the entire memory entry is exported to another process/service. The skill context makes this more dangerous than generic telemetry because its purpose is persistent semantic storage of accumulated memories, which can concentrate sensitive historical data in one place.

External Transmission

Medium
Category
Data Exfiltration
Content
def get_embedding(text):
    """获取 BGE 向量"""
    try:
        response = requests.post(
            'http://localhost:11434/api/embeddings',
            json={
                'prompt': text  # BGE 服务使用 prompt 字段
Confidence
94% confidence
Finding
The external transmission finding is valid because the request body includes raw `text` under `prompt`, meaning the entire memory entry is exported to another process/service. The skill context makes this more dangerous than generic telemetry because its purpose is persistent semantic storage of accumulated memories, which can concentrate sensitive historical data in one place.

Session Persistence

Medium
Category
Rogue Agent
Content
```bash
# 1. 创建目录结构
mkdir -p ~/.openclaw/workspace/memory/{errors,corrections,practices,events,gaps}
mkdir -p ~/.openclaw/workspace/memory_archive
mkdir -p ~/.openclaw/workspace/vector_db/memories
Confidence
87% confidence
Finding
The skill intentionally creates persistent storage for memory, archives, and a vector database across sessions. In ordinary tools this might be expected behavior, but here it stores interaction-derived content and makes it retrievable over time, which materially increases confidentiality risk if users do not explicitly consent or understand retention.

Static analysis

No suspicious patterns detected.