Plugin

Security checks across static analysis, malware telemetry, and agentic risk

Overview

This looks like a purpose-built memory plugin, but it can persist and reinject conversation history and make LLM/licensing network calls, so configure it carefully.

Before installing, decide whether you want conversation memory stored across sessions, check auto-capture/auto-recall settings, choose a local or external LLM endpoint intentionally, and be comfortable with vendor license/update checks. The provided artifacts do not show unrelated exfiltration or destructive behavior.

Static analysis

Dangerous exec

Critical
Finding
Shell command execution detected (child_process).
Content
`)}var tn=J(()=>{A();L();$e();We()});L();import{existsSync as Is}from"node:fs";import{resolve as Cs}from"node:path";import{checkLicense as Ds}from"./lib/license...

Env credential access

Critical
Finding
Environment variable access combined with network send.
Content
var sn=Object.defineProperty;var J=(n,e)=>()=>(n&&(e=n(n=0)),e);var Oe=(n,e)=>{for(var t in e)sn(n,t,{get:e[t],enumerable:!0})};import{execSync as on}from"node:...

VirusTotal

VirusTotal engine telemetry is currently stale for this artifact.

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.

#
ASI06: Memory and Context Poisoning
Medium
What this means

Captured conversations may be reused in later tasks, and inaccurate or poisoned memories could influence future agent behavior.

Why it was flagged

The plugin can persist conversation-derived memory and inject recalled memories into later agent turns, which is central to its stated memory purpose but sensitive.

Skill content
"help": "Inject relevant memories before each agent turn" ... "help": "Store conversation context after each turn"
Recommendation

Enable auto-capture/auto-recall only where persistent memory is appropriate, review stored memories periodically, and avoid using it for highly sensitive sessions unless you understand the retention controls.

#
ASI03: Identity and Privilege Abuse
Medium
What this means

If an API key is present, memory-related prompts or embedding inputs may be sent to the configured LLM provider and billed to that account.

Why it was flagged

The plugin can automatically use LLM API keys from the environment and attach them to network requests to the selected LLM provider.

Skill content
function et(){return process.env.OPENCLAW_LLM_API_KEY||process.env.OPENAI_API_KEY||null} ... e.Authorization=`Bearer ${n.apiKey}`
Recommendation

Set the LLM endpoint and API key intentionally, prefer local providers for sensitive memory, and avoid leaving unrelated global API keys available if you do not want this plugin to use them.

#
ASI03: Identity and Privilege Abuse
Low
What this means

The vendor can verify and potentially revoke license state for this device; the shown code does not send memory content in this license request.

Why it was flagged

The commercial license check posts the local license key and device identifier to the vendor verification API.

Skill content
body: JSON.stringify({ key: license.key, device_id: license.device_id })
Recommendation

Install only if you are comfortable with vendor license verification and the device activation model described by the license.

#
ASI05: Unexpected Code Execution
Low
What this means

Shell execution increases the impact of unsafe inputs or untrusted local binaries, although the visible uses are aligned with local memory indexing/search.

Why it was flagged

The main bundle wraps child_process.execSync and uses it for local sqlite3/qmd operations, which is broader than pure in-process file access.

Skill content
import{execSync as on}from"node:child_process";function m(n,e){return on(n,e)}
Recommendation

Use the plugin in a trusted local environment, ensure sqlite3/qmd binaries are trusted, and keep memory/database paths under user-controlled .openclaw directories.

#
ASI10: Rogue Agents
Low
What this means

The plugin may contact the vendor in the background for update status without interrupting the user.

Why it was flagged

The update checker runs a silent background network check while the plugin is active, scoped to update metadata and throttled to once per day.

Skill content
Fire-and-forget, never blocks startup. Checks at most once every 24 hours. ... fetch("https://openclaw-api.apptah.com/api/check-update"
Recommendation

Be aware of the background vendor check and block or disable network access if your environment requires fully offline operation.