Back to skill

Security audit

openclaw memory opportunity

Security checks for vulnerabilities and agentic risk

Overview

The skill is a disclosed local memory tool, but it relies on an unpinned global npm install and can persist private conversation or file contents as plaintext.

Review this before installing. Use an exact audited npm version or source checkout rather than an open-ended global install, avoid broad collection paths, disable or tightly control auto-trigger memory capture, and do not store secrets or sensitive personal data unless you are comfortable with plaintext files under ~/.memory-os/.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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 (2)

T08 · Insecure Dependencies

Error
Location
skill.md:12
Finding

Unpinned Global npm Dependency Permits Supply-Chain Substitution

Content
View full analysis
=0.1.2" verified_repo: https://github.com/ZhenRobotics/openclaw-memory-opportunity verified_commit: 28a1a92 ``` The installation instructions also direct users to install the dependency globally: ```bash npm install -g openclaw-memory-opportunity ``` ### Technical Analysis The version constraint `>=0.1.2` allows npm to resolve any current or future compatible release rather than the specific release represented by the declared verified commit. The `verified_commit` metadata does not cryptographically bind the downloaded npm archive to commit `28a1a92`, and the installation command does not specify an exact version or integrity digest. Because the actual npm package implementation is not included in the audited artifact, its claimed local-only and zero-network behavior cannot be independently verified from these files. A global npm installation may run package lifecycle scripts and makes the package CLI available in the user's environment. Consequently, compromise of the npm publisher account, registry package, or a later release could introduce arbitrary executable behavior after this Skill has been reviewed. ### Attack Path 1. An attacker compromises the package publisher account or otherwise gains the ability to publish a new version of `openclaw-memory-opportunity`. 2. The attacker publishes a malicious version greater than `0.1.2`. 3. A user follows the documented `npm install -g openclaw-memory-opportunity` instruction. 4. npm resolves the newly published version because it satisfies the open-ended dependency constraint. 5. Malicious lifecycle scripts or package CLI code execute with the privileges of the user running npm. 6. The malicious package may acce ...[truncated 722 chars]
Remediation
View remediation
=0.1.2`. 2. Publish and verify the npm archive's integrity digest or signed provenance before installation. 3. Ensure the npm package contents are reproducibly built from the declared repository commit. 4. Avoid global installation where possible; use a project-local dependency with a lockfile. 5. Use `npm ci` with a committed lockfile for reproducible installations. 6. Disable lifecycle scripts with `--ignore-scripts` when the package does not legitimately require them. 7. Audit each dependency update before changing the pinned version. 8. Consider bundling or vendoring the reviewed implementation so the installed code matches the audited artifact. ]]>

T09 · Insecure Skill Coding Practices

Warning
Location
skill.md:463
Finding

Sensitive Conversation and File Memories Are Stored as Plaintext JSON

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (33)

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
90% confidence
Finding

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).

Content

Scanner excerpt · readme.md (reported line 31)May include surrounding context.

md
- Stored: `~/.memory-os/` (local JSON files)
- Control: You decide what to collect and when
- Ownership: You own all data files
- Deletion: `rm -rf ~/.memory-os/` removes everything

**Recommended Safe Usage:**
1. Test in sandbox/VM first

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
90% confidence
Finding

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).

Content

Scanner excerpt · readme.md (reported line 299)May include surrounding context.

md
- Stored: `~/.memory-os/` (local JSON files)
- Control: You decide what to collect and when
- Ownership: You own all data files
- Deletion: `rm -rf ~/.memory-os/` removes everything

**Recommended Safe Usage:**
1. Test in sandbox/VM first

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
90% confidence
Finding

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).

Content

Scanner excerpt · skill.md (reported line 71)May include surrounding context.

md
- Stored: `~/.memory-os/` (local JSON files)
- Control: You decide what to collect and when
- Ownership: You own all data files
- Deletion: `rm -rf ~/.memory-os/` removes everything

**Recommended Safe Usage:**
1. Test in sandbox/VM first

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
90% confidence
Finding

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).

Content

Scanner excerpt · skill.md (reported line 282)May include surrounding context.

md
- Stored: `~/.memory-os/` (local JSON files)
- Control: You decide what to collect and when
- Ownership: You own all data files
- Deletion: `rm -rf ~/.memory-os/` removes everything

**Recommended Safe Usage:**
1. Test in sandbox/VM first

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
90% confidence
Finding

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).

Content

Scanner excerpt · skill.md (reported line 450)May include surrounding context.

md
- Stored: `~/.memory-os/` (local JSON files)
- Control: You decide what to collect and when
- Ownership: You own all data files
- Deletion: `rm -rf ~/.memory-os/` removes everything

**Recommended Safe Usage:**
1. Test in sandbox/VM first

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
90% confidence
Finding

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).

Content

Scanner excerpt · skill.md (reported line 575)May include surrounding context.

md
- Stored: `~/.memory-os/` (local JSON files)
- Control: You decide what to collect and when
- Ownership: You own all data files
- Deletion: `rm -rf ~/.memory-os/` removes everything

**Recommended Safe Usage:**
1. Test in sandbox/VM first

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
85% confidence
Finding

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).

Content

Scanner excerpt · readme.md (reported line 31)May include surrounding context.

md
- Stored: `~/.memory-os/` (local JSON files)
- Control: You decide what to collect and when
- Ownership: You own all data files
- Deletion: `rm -rf ~/.memory-os/` removes everything

**Recommended Safe Usage:**
1. Test in sandbox/VM first

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
85% confidence
Finding

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).

Content

Scanner excerpt · readme.md (reported line 299)May include surrounding context.

md
- Stored: `~/.memory-os/` (local JSON files)
- Control: You decide what to collect and when
- Ownership: You own all data files
- Deletion: `rm -rf ~/.memory-os/` removes everything

**Recommended Safe Usage:**
1. Test in sandbox/VM first

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
85% confidence
Finding

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).

Content

Scanner excerpt · skill.md (reported line 71)May include surrounding context.

md
- Stored: `~/.memory-os/` (local JSON files)
- Control: You decide what to collect and when
- Ownership: You own all data files
- Deletion: `rm -rf ~/.memory-os/` removes everything

**Recommended Safe Usage:**
1. Test in sandbox/VM first

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
85% confidence
Finding

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).

Content

Scanner excerpt · skill.md (reported line 575)May include surrounding context.

md
- Stored: `~/.memory-os/` (local JSON files)
- Control: You decide what to collect and when
- Ownership: You own all data files
- Deletion: `rm -rf ~/.memory-os/` removes everything

**Recommended Safe Usage:**
1. Test in sandbox/VM first

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
90% confidence
Finding

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).

Content

Scanner excerpt · readme.md (reported line 31)May include surrounding context.

md
- Stored: `~/.memory-os/` (local JSON files)
- Control: You decide what to collect and when
- Ownership: You own all data files
- Deletion: `rm -rf ~/.memory-os/` removes everything

**Recommended Safe Usage:**
1. Test in sandbox/VM first

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
90% confidence
Finding

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).

Content

Scanner excerpt · skill.md (reported line 71)May include surrounding context.

md
- Stored: `~/.memory-os/` (local JSON files)
- Control: You decide what to collect and when
- Ownership: You own all data files
- Deletion: `rm -rf ~/.memory-os/` removes everything

**Recommended Safe Usage:**
1. Test in sandbox/VM first

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
90% confidence
Finding

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).

Content

Scanner excerpt · skill.md (reported line 282)May include surrounding context.

md
- Stored: `~/.memory-os/` (local JSON files)
- Control: You decide what to collect and when
- Ownership: You own all data files
- Deletion: `rm -rf ~/.memory-os/` removes everything

**Recommended Safe Usage:**
1. Test in sandbox/VM first

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
90% confidence
Finding

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).

Content

Scanner excerpt · skill.md (reported line 450)May include surrounding context.

md
- Stored: `~/.memory-os/` (local JSON files)
- Control: You decide what to collect and when
- Ownership: You own all data files
- Deletion: `rm -rf ~/.memory-os/` removes everything

**Recommended Safe Usage:**
1. Test in sandbox/VM first

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
85% confidence
Finding

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).

Content

Scanner excerpt · skill.md (reported line 279)May include surrounding context.

md
openclaw-memory-opportunity search "keyword"

# Delete specific memory
rm ~/.memory-os/memories/<memory-id>.json

# Complete removal
rm -rf ~/.memory-os/

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · skill.md (reported line 468)May include surrounding context.

md
"collectors": {
    "auto": false,  // Manual only
    "sources": [],  // Must be explicitly set
    "exclude": ["node_modules", ".git", ".env"]
  },
  "privacy": {
    "encryption": false,

Ssd 3

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

Auto-triggered memory extraction from natural language can retain secrets, personal data, or regulated information without granular confirmation. Because the system is designed to store conversation-derived memories locally and persistently, accidental disclosure becomes durable and may later be surfaced through search or inspection.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The README describes automatic activation on broad conversational phrases like 'remember...' / '记住...', but does not define strict activation boundaries, confirmation prompts, or exclusion rules. In a conversational agent context, this can cause unintended persistence of user messages, including sensitive data, simply because ordinary language overlaps with the trigger syntax.

Content

No source excerpt is available for this finding.

Ssd 3

Medium
Category
Not specified by scanner
Confidence
83% confidence
Finding

Marketing the tool as collecting and processing 'all your digital memories' encourages indiscriminate ingestion of highly sensitive personal data. In the context of a system that stores data in local JSON and supports broad collection, this messaging increases the likelihood of overcollection beyond what is necessary or safe.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

Repeating the vague auto-trigger behavior in the feature list reinforces that normal conversation may be interpreted as a storage command without clear consent boundaries. In a memory-extraction product, that ambiguity materially increases the risk of accidental collection and retention of private content.

Content

No source excerpt is available for this finding.

File System Enumeration

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Code scans file system directories looking for sensitive files. This could be reconnaissance for credential theft.

Content

Scanner excerpt · readme.md (reported line 121)May include surrounding context.

bash
# Verify data location
ls -la ~/.memory-os/memories/

# Inspect collected memories
cat ~/.memory-os/memories/*.json | jq '.'

File System Enumeration

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Code scans file system directories looking for sensitive files. This could be reconnaissance for credential theft.

Content

Scanner excerpt · skill.md (reported line 139)May include surrounding context.

bash
# Verify data location
ls -la ~/.memory-os/memories/

# Inspect collected memories
cat ~/.memory-os/memories/*.json | jq '.'

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
70% confidence
Finding

Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

Content

Scanner excerpt · readme.md (reported line 131)May include surrounding context.

md
# Monitor network activity (should be ZERO for v0.1.1)
# In one terminal:
sudo tcpdump -i any port 443 or port 80

# In another terminal:
openclaw-memory-opportunity collect --source ~/test-data/

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The Chinese documentation mirrors the same broad conversational trigger model, so the ambiguity affects multilingual users as well. This expands the population exposed to accidental capture of sensitive content and indicates the issue is part of the intended design rather than an isolated wording problem.

Content

No source excerpt is available for this finding.

Ssd 3

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

This section advertises automatic extraction of conversation memory, including names, dates, and events, which are categories of personal data commonly disclosed in chat. Even if storage is local-only, persistent capture from natural language raises privacy and consent risks because users may not expect ordinary phrasing to create durable records.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.