T02 · Agent Memory Poisoning
- Location
scripts/memory_update.py:470- Finding
Untrusted conversation history can poison persistent Agent files and escape the workspace
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill openly aims to make an agent learn from past chats, but it gives AI-generated analysis too much power to change persistent agent files and retain sensitive conversation data.
Install only if you are comfortable with the skill reading recent conversations and agent memory files, sending that material through the OpenClaw session analysis path, and writing persistent agent behavior files. Use dry-run first, avoid storing secrets in conversations or memory files, restrict the workspace, review generated diffs manually, and prefer a patched version that enforces filename allowlists, path containment, schema validation, redaction, delete limits, and real rollback.
scripts/memory_update.py:470Untrusted conversation history can poison persistent Agent files and escape the workspace
scripts/memory_update.py:752Deletion limits, confirmation, and rollback safeguards are not enforced
scripts/memory_update.py:465Sensitive conversations and configuration data are sent for analysis and retained in plaintext artifacts
requirements.txt:5Runtime installation uses broad, unpinned dependency constraints
If the skill forwards full conversation summaries and memory/config contents to an external AI or session API without clear disclosure, that creates a real confidentiality risk. The danger is amplified here because the skill is explicitly positioned as a memory-management tool, so operators may feed it sensitive user preferences, history, and internal agent state that should not be transmitted externally without consent and minimization.
If the skill forwards full conversation summaries and memory/config contents to an external AI or session API without clear disclosure, that creates a real confidentiality risk. The danger is amplified here because the skill is explicitly positioned as a memory-management tool, so operators may feed it sensitive user preferences, history, and internal agent state that should not be transmitted externally without consent and minimization.
If the skill forwards full conversation summaries and memory/config contents to an external AI or session API without clear disclosure, that creates a real confidentiality risk. The danger is amplified here because the skill is explicitly positioned as a memory-management tool, so operators may feed it sensitive user preferences, history, and internal agent state that should not be transmitted externally without consent and minimization.
If the skill forwards full conversation summaries and memory/config contents to an external AI or session API without clear disclosure, that creates a real confidentiality risk. The danger is amplified here because the skill is explicitly positioned as a memory-management tool, so operators may feed it sensitive user preferences, history, and internal agent state that should not be transmitted externally without consent and minimization.
Referenced artifact was not completely inspected
- scripts/memory_update.py: 主执行脚本 (配置文件更新)
Referenced artifact was not completely inspected
- scripts/memory_update.py: 主执行脚本 (配置文件更新)
Referenced artifact was not completely inspected
- scripts/memory_update.py: 主执行脚本 (配置文件更新)
Referenced artifact was not completely inspected
- scripts/memory_update.py: 主执行脚本 (配置文件更新)
Referenced artifact was not completely inspected
- scripts/memory_update.py: 主执行脚本 (配置文件更新)
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
rm -rf ~/.openclaw/hooks/self-learning
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
rm -rf ~/.openclaw/hooks/self-learning
The skill uses 'env' capability that is not listed in its permissions. This may indicate deceptive intent or missing permission declarations.
The script sends summarized conversation history to an AI analysis call without any explicit consent, warning, or minimization step. Because conversations may contain sensitive personal data, credentials, or operational details, this creates a real confidentiality risk through unnecessary third-party/model exposure.
The workflow turns conversational content into autonomous file modification instructions, then writes them into long-term configuration and memory files with minimal validation. In the context of a self-learning skill, this is especially dangerous because prompt injection, mistaken inferences, or malicious user statements can become persistent trusted state and influence future agent behavior.
The prompt explicitly tells the AI to extract and persist new configuration data including API keys, tokens, channel IDs, and similar sensitive identifiers from conversation history into long-term files. This creates a durable secret-spillage mechanism where casually mentioned or compromised credentials are copied into multiple persistent stores, dramatically increasing exposure and blast radius.
The changelog content is entirely presented in Chinese, including the title and explanatory text, with no indication that language selection is optional or user-configurable. Under the policy criteria, forcing a specific language without user opt-in is a natural-language locale violation.
The skill's core purpose is to analyze dialogue history and persist learned information into memory/configuration files, creating an inherent retention surface for sensitive natural-language content. In this context, persistence is more dangerous because the tool is designed to continually accumulate and operationalize user-provided information across sessions.
The README explicitly promotes automatic updates to core configuration files and cleanup of backups, but it does not prominently warn users that the skill will modify persistent files and may delete retained backups. In a self-learning skill that targets MEMORY.md, IDENTITY.md, and similar files, this can cause unintended state corruption or loss of user-managed data if invoked without clear consent and safeguards.
The learning-record feature encourages storing detailed execution history plus structured records of corrections, errors, and requests, which can easily capture sensitive prompts, commands, file paths, tokens, or internal context. Because the records are positioned as a long-term self-improvement mechanism, they may normalize over-retention of user inputs beyond what is necessary.
The workflow states that the tool obtains the past 24 hours of conversation history for analysis, but the documentation does not warn about privacy implications or data minimization. Because conversation history may contain credentials, personal data, or sensitive business context, silent collection for self-learning materially increases exposure risk.
The documented workflow instructs broad collection of the previous 24 hours of conversations and then saving execution history, which compounds both collection and retention risk. In a self-learning skill, this creates a direct path for sensitive dialogue to be copied into additional files and logs, increasing blast radius if the workspace is shared, synced, or later exfiltrated.
The natural-language description, usage guidance, and triggers are presented only in Chinese, which effectively constrains activation and operation guidance to a specific language. The file does not indicate that users may choose another language or that the locale restriction is intentional and justified.
The skill is explicitly designed to retain user-provided conversation details in persistent memory and output artifacts, but the documentation does not define data-minimization, sensitivity boundaries, or exclusion rules. Because the purpose is to analyze conversations and update memory/configuration files, the context makes this more dangerous: ordinary chats may contain credentials, personal data, or internal project information that should never be persisted automatically.
Broad trigger phrases like '自我学习', '记忆更新', and '配置优化' can cause the skill to activate during ordinary conversation, leading to unintended access to conversation history, memory files, or write operations. In a skill that is designed to persist information and modify agent state, ambiguous invocation materially increases the risk of over-collection and unwanted state changes.
Instructing the system to analyze recent conversation history and record corrections, errors, feature requests, and promoted content into structured logs and project files creates a durable data-retention surface that can capture sensitive or unnecessary information. This is especially risky in a self-learning skill because promoted content may spread user-supplied details from transient chats into long-lived files like SOUL.md, AGENTS.md, or TOOLS.md, increasing exposure and persistence.
Detected: suspicious.destructive_delete_command