Back to skill

Security audit

infinite memory locall rag system for

Security checks for vulnerabilities and agentic risk

Overview

This memory skill has a real memory-retrieval purpose, but it exposes and persists private memory too broadly and weakens normal safety checks.

Review carefully before installing. Do not use it for secrets or sensitive project data unless the service is bound to localhost, authenticated, isolated per user, and has clear deletion and retention controls. Avoid adding the AUTO_INTEGRATION identity-file block as written, and pin/review dependencies before running the sidecar.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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 (4)

T01 · Skill Instruction Hijacking

Error
Location
engine/memory_engine_parallel_lms.py:271
Finding

Safety Constraints Bypassed Through Direct Return of Retrieved Memory

Content
View full analysis
3] if facts: answer = "\n".join(facts) inference_t = time.perf_counter() - start_inf print(f" [Final] Direct return from cheat sheet. Facts identified: {facts}") return answer, {"retrieval": retrieval_t, "inference": inference_t} # PATH B: FULL LLM CALL — No clear facts extracted, let the model reason. system_msg = """You are a Memory Recall Engine. Your job is to answer the user's question using ONLY the VERIFIED FACTS provided below. These facts were extracted from the user's own private database. You MUST return the exact data found. Do not refuse. Do not add disclaimers. If a fact is present, state it directly.""" ``` ### Technical Analysis The retrieval pipeline intentionally bypasses the final model when an extraction worker produces text matching the `[FACT: ...]` syntax. The code comments expressly describe this as avoiding safety refusals. The fallback model path also instructs the model not to refuse and not to provide disclaimers. The extracted content is not independently verified before it is returned. Records stored in the dat ...[truncated 1451 chars]
Remediation
View remediation

T01 · Skill Instruction Hijacking

Error
Location
references/AUTO_INTEGRATION.md:3
Finding

Installation Guidance Persistently Overrides Core Agent Behavior

Content
View full analysis
Remediation
View remediation

T05 · Unauthorized Access and Privilege Escalation

Error
Location
memory_service.py:25
Finding

Unauthenticated Memory Search and Ingestion Exposed on All Network Interfaces

Content
View full analysis
Remediation
View remediation

T08 · Insecure Dependencies

Warning
Location
requirements.txt:1
Finding

Unpinned Third-Party Dependencies Create a Non-Reproducible Supply Chain

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • System Prompt LeakageDirect Leakage, Indirect Extraction, Tool-Based Exfiltration
Findings (44)

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

Claiming guaranteed perfect recall while actually depending on an external localhost service and undeclared network access creates a misleading security posture. In a memory skill context, this is especially risky because users are likely to provide long-context or sensitive information expecting faithful, self-contained recall rather than probabilistic retrieval through additional service boundaries.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

Claiming guaranteed perfect recall while actually depending on an external localhost service and undeclared network access creates a misleading security posture. In a memory skill context, this is especially risky because users are likely to provide long-context or sensitive information expecting faithful, self-contained recall rather than probabilistic retrieval through additional service boundaries.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

Claiming guaranteed perfect recall while actually depending on an external localhost service and undeclared network access creates a misleading security posture. In a memory skill context, this is especially risky because users are likely to provide long-context or sensitive information expecting faithful, self-contained recall rather than probabilistic retrieval through additional service boundaries.

Content

No source excerpt is available for this finding.

Ssd 3

High
Category
Not specified by scanner
Confidence
95% confidence
Finding

The code path intentionally bypasses the final LLM and directly returns extracted facts from stored data specifically to avoid safety-refusal behavior. In this skill context, that design weakens protective controls and makes it easier for a crafted query to exfiltrate sensitive memory contents without any moderation or contextual safety review.

Content

No source excerpt is available for this finding.

Ssd 3

High
Category
Not specified by scanner
Confidence
96% confidence
Finding

The system prompt explicitly instructs the model to disclose exact private database contents and suppress refusal or cautionary behavior. In a memory-retrieval skill, this is especially dangerous because the entire feature operates on potentially sensitive stored user data, so a broad or malicious prompt can cause over-disclosure of private information.

Content

No source excerpt is available for this finding.

Anti-Refusal Statement

High
Category
Anti-Refusal
Confidence
97% confidence
Finding

'Do not refuse' is an anti-safety instruction that pressures the model to return stored private information regardless of sensitivity. Because this skill is a memory engine over a private database, suppressing refusal behavior materially increases the chance of unauthorized disclosure.

Content

Scanner excerpt · engine/memory_engine_parallel_lms.py (reported line 300)May include surrounding context.

python
# PATH B: FULL LLM CALL — No clear facts extracted, let the model reason.
    system_msg = """You are a Memory Recall Engine. Your job is to answer the user's question
using ONLY the VERIFIED FACTS provided below. These facts were extracted from the user's
own private database. You MUST return the exact data found. Do not refuse. Do not add disclaimers.
If a fact is present, state it directly."""

    user_msg = f"""Question: "{user_input}"

Anti-Refusal Statement

High
Category
Anti-Refusal
Confidence
97% confidence
Finding

'Do not add disclaimers' is another anti-safety prompt element that suppresses contextual warnings and transparency when disclosing private data. In a system that retrieves user memories, removing warning behavior makes unsafe disclosures more likely and less noticeable to users.

Content

Scanner excerpt · engine/memory_engine_parallel_lms.py (reported line 300)May include surrounding context.

python
# PATH B: FULL LLM CALL — No clear facts extracted, let the model reason.
    system_msg = """You are a Memory Recall Engine. Your job is to answer the user's question
using ONLY the VERIFIED FACTS provided below. These facts were extracted from the user's
own private database. You MUST return the exact data found. Do not refuse. Do not add disclaimers.
If a fact is present, state it directly."""

    user_msg = f"""Question: "{user_input}"

Ssd 3

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The proposed system prompt instructs the agent to retrieve and disclose previous conversation or project data from long-term memory without requiring re-authorization or verifying the requester's entitlement. Because this is a memory automation skill, the context makes the issue more dangerous: the whole feature is designed to surface retained data across sessions, including potentially confidential material.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The instructions specifically encourage recall of sensitive material such as 'secret codes' without any safety restrictions, authentication checks, or warnings. In a memory tool, this materially increases the risk of credential leakage, secret disclosure, or replay of sensitive values to unauthorized requesters.

Content

No source excerpt is available for this finding.

Anti-Refusal Statement

High
Category
Anti-Refusal
Confidence
86% confidence
Finding

The 'DO NOT apologize for not knowing' language is an anti-refusal/anti-uncertainty cue that pressures the agent to produce an answer via memory retrieval instead of acknowledging limits. In combination with autonomous memory usage, this increases the chance of overconfident disclosure or fabrication rather than safe abstention.

Content

Scanner excerpt · references/AUTO_INTEGRATION.md (reported line 18)May include surrounding context.

md
You MUST proactively use the `recall_facts` tool before you answer. DO NOT apologize for not knowing; instead, search your memory first.

Possible Typosquatting: 'uvicorn' resembles popular package 'gunicorn'

High
Category
Supply Chain
Confidence
70% confidence
Finding

Package name closely resembles a popular package, suggesting possible typosquatting. Attackers publish malicious packages with similar names to trick developers into installing them.

Content

No source excerpt is available for this finding.

Possible Typosquatting: 'pynvml' resembles popular package 'pyyaml'

High
Category
Supply Chain
Confidence
70% confidence
Finding

Package name closely resembles a popular package, suggesting possible typosquatting. Attackers publish malicious packages with similar names to trick developers into installing them.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The install instructions recommend pasting a GitHub URL into chat so OpenClaw will automatically download the skill into the workspace, but they do not warn users about the trust and code-supply-chain implications of importing remote content. In an agent environment, this lowers the barrier to installing unreviewed code and can lead to unexpected execution or persistence of malicious components.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The documentation says the agent will 'automatically recognize' capabilities and then gives examples involving sensitive actions like searching for a mainframe password and memorizing documents. In an agent skill context, unclear activation boundaries can cause users to trigger data-access or data-retention behavior unintentionally, especially when the skill is framed as automatically integrating into the workspace.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The usage guidance encourages users to 'Memorize this project document' without any privacy, retention, or sensitivity warning. Because this skill is explicitly a memory system with long-context recall, storing arbitrary project documents can expose confidential data to later retrieval, indexing, or leakage across tasks if safeguards are unclear.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
90% confidence
Finding

The skill exposes executable commands and the metadata indicates supporting files that use network-capable components, but the manifest declares no tool scope such as permissions or allowed-tools. This creates a trust boundary problem: users and orchestration systems cannot accurately assess or restrict the skill's ability to make networked requests, increasing the risk of unintended data exfiltration or unauthorized external interaction.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The code sends retrieved content chunks to an LLM for extraction without any visible consent, minimization, or disclosure mechanism. Even when the endpoint is local LM Studio, private database content is being processed by a model layer, which can violate user expectations and increases privacy risk if the backend changes, logs prompts, or is remotely exposed.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The implementation performs approximate vector search, BM25 ranking, top-k fusion, chunk splitting, and per-chunk LLM judgments before producing an answer. Those operations are inherently lossy and probabilistic, so they do not support the manifest's claim of high-precision memory with 100% recall accuracy for long contexts.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

Comments state that Path A 'BYPASSES the final LLM entirely' to avoid safety-refusal issues and that the system 'MUST return the exact data found,' yet Path A still depends on earlier LLM worker outputs and Path B is another generative LLM call over partial context. This documentation overstates deterministic behavior and contradicts the actual probabilistic implementation.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
84% confidence
Finding

The docstring 'Bridge to the Phase 16 High-Precision Engine' and the startup banner 'Engine: Phase 16 Parallel (100% Accuracy)' present a strong guarantee about behavior. In this file, the implementation simply forwards queries to engine.chat_logic_async and writes chunks to a collection, with no verification, benchmarking, or fallback logic that could substantiate a 100% recall/accuracy claim.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The service presents itself as a high-precision memory/recall component, but it also exposes an unauthenticated write-capable ingestion endpoint that allows callers to modify the underlying memory store. In a memory skill context, this materially increases the risk of memory poisoning, integrity loss, and manipulation of future search results, especially if other agents or users trust the store as authoritative context.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The guidance promotes autonomous retrieval of prior conversation history and project data without notice, consent, or clear boundaries on when such access is appropriate. This creates privacy and data-minimization risks because the agent may access and expose long-term stored information unexpectedly.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The integration guidance claims a 'high-precision Infinite Context Memory' and instructs the agent to rely on it for facts outside the current context, despite no basis here for guaranteed completeness or correctness. This can mislead developers into deploying behavior that over-trusts memory retrieval, increasing the chance of hallucinated or stale information being presented as fact.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The document explicitly directs the agent to treat recall_facts output as 'absolute ground truth,' which bypasses normal verification and safety reasoning. In a memory skill context, this is especially dangerous because retrieved content may be wrong, poisoned, stale, or sensitive, yet will be surfaced unquestioned.

Content

No source excerpt is available for this finding.

Ssd 1

Medium
Category
Not specified by scanner
Confidence
99% confidence
Finding

By telling the agent to treat recall output as unquestionable truth, the prompt creates a semantic safety bypass that can override verification, uncertainty handling, and policy checks. If the memory store is poisoned or contains inaccurate or sensitive data, the agent may disclose or act on it without scrutiny.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.