Back to skill

Security audit

Totalreclaw

Security checks across malware telemetry and agentic risk

Overview

This memory skill is coherent in purpose, but it needs Review because it combines persistent automatic memory capture with destructive cleanup and autonomous restart instructions that reduce user control.

Install only if you want TotalReclaw to act as a persistent encrypted memory provider and you are comfortable with automatic background memory capture. Review the reinstall cleanup command before running it, avoid letting an agent run restart or detached pairing fallback actions without your awareness, and understand where credentials and memories are stored before pairing.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Rogue AgentSelf-Modification, Session Persistence
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (9)

Description-Behavior Mismatch

Medium
Confidence
91% confidence
Finding
The manifest markets the skill as having removed risk and improved security, yet the body instructs the agent to run shell commands that uninstall software, recursively delete package directories, and perform autonomous restart actions. This mismatch can lower operator suspicion and increases the chance that a user or agent executes impactful actions without appropriate review.

Context-Inappropriate Capability

Medium
Confidence
90% confidence
Finding
The skill directs the agent to autonomously issue a restart command when tools are not bound, which extends beyond ordinary memory-provider guidance into environment/process management. Autonomous restart behavior can disrupt running sessions, mask underlying installation problems, and normalize self-modifying operational actions without consent.

Context-Inappropriate Capability

Medium
Confidence
95% confidence
Finding
The reinstall recovery flow includes `rm -rf` against a wildcarded package path, a destructive filesystem operation not inherent to a memory provider's core purpose. If the path is incorrect, expanded unexpectedly, or copied into a different environment, it can delete unintended files and cause local denial of service or data loss.

Vague Triggers

Medium
Confidence
83% confidence
Finding
Broad trigger keywords such as `memory`, `plugin`, `native`, and `encrypted` can cause the skill to activate in unrelated conversations. Unintended invocation is dangerous here because the skill contains installation, pairing, restart, and deletion instructions that may then influence agent behavior outside the user's actual intent.

Missing User Warnings

Medium
Confidence
94% confidence
Finding
The skill instructs destructive deletion during reinstall recovery without a clear warning about the risk of removing files or the exact impact. This increases the likelihood of accidental data loss, especially when an agent may execute commands literally and users may not understand the consequence of wildcarded recursive deletion.

Missing User Warnings

Low
Confidence
82% confidence
Finding
The autonomous restart instruction does not clearly warn the user that it will trigger a signal/restart-related action affecting the runtime. Even if intended for recovery, silent operational actions can interrupt service, alter agent state, and reduce transparency in environments where restarts are sensitive.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
## Restart (agent-driven, never user-manual)

The plugin self-reloads: after install it writes the gateway config it needs and signals `SIGUSR1` to its own PID so the gateway picks it up without a manual restart. **If `memory_search`/`memory_get` are not bound** (tools didn't take effect on first load), issue the literal slash command `/totalreclaw-restart` **autonomously** — announce it in one line, never ask the user to authorize it, never stall, never `kill` / `docker restart` / prompt the user to restart. This mirrors the autonomous-restart pattern other runtimes use; the user should never perform a manual restart.

## Tools + CLI surface
Confidence
92% confidence
Finding
The skill explicitly instructs the agent to perform a restart autonomously and to avoid asking the user for authorization. Removing the consent step for operational actions is risky because it allows the skill to change runtime state on its own, potentially causing disruption or being abused as a precedent for broader unauthorized actions.

Session Persistence

Medium
Category
Rogue Agent
Content
## How memory works here (read first)

* **Recall is native.** `memory_search` and `memory_get` are the memory tools. Skill平台's `active-memory` sub-agent routes recall through them and the plugin injects guidance telling you when to search. When the user asks about themselves ("what's my X?", "do I X?", "what do you remember?"), call `memory_search`. If 0 results, say so plainly — don't guess from session history.
* **Capture is automatic.** The plugin extracts facts from the conversation in the background (trajectory poller). You do **not** call a tool on every preference/fact the user states — that happens for you. Never write user facts to `MEMORY.md`, `USER.md`, or any local file; those are agent-persona config, user memories live encrypted on-chain.
* **Explicit remember only on request.** If the user explicitly says "remember X" / "save X" / "note X" / "don't forget X", use the CLI: `tr remember --json "X"`. One call per distinct fact.

Do not describe storage as `"local"`, `"local-only"`, `"stored locally"`, `"on disk"`, or `"without an account"` — memories are decentralized on-chain (not on any single company server) and an account is required to derive the encryption key.
Confidence
88% confidence
Finding
The skill states that conversation facts are captured automatically in the background and stored as persistent memory, which creates privacy and retention risk if users have not clearly opted in or do not understand the scope of collection. In a memory-provider skill this behavior is contextually relevant, but the decentralized/on-chain persistence can make mistaken or over-collected data harder to retract and more sensitive than ordinary session memory.

Session Persistence

Medium
Category
Rogue Agent
Content
→ returns `{"url":"https://…/pair/p/<id>#pk=…","pin":"123456","expires_at_ms":…}`.

   **Do NOT use `tr pair --json` for this.** The CLI holds the pair WebSocket in a subprocess that Skill平台's ~30s shell-tool timeout kills — the WS then drops, and when the user submits their phrase the relay returns a **502** (`gateway_disconnected`). The in-process route above avoids that entirely. Only fall back to the CLI if the route is unreachable (no `curl`, or a pre-3.3.14 plugin), and then it MUST be detached so the WS outlives the shell exec: `setsid -f node "$TR_CLI" pair --json < /dev/null` — never run `tr pair` in the foreground.
2. Surface the **url** and **pin** to the user verbatim (read from the JSON; never invent values): "Open `<url>` in your browser, enter PIN `<pin>`, and generate or paste your 12-word recovery phrase. Reply done once it's sealed." Emit the URL as plain text on its own line — the `#pk=` fragment breaks if wrapped in backticks/markdown.
3. The user completes in the browser (phrase is generated/imported browser-side, encrypted, uploaded to the relay — never touches this chat). On completion `~/.totalreclaw/credentials.json` is written.
4. Confirm: `✓ TotalReclaw set up.` (If credentials already exist when first asked: `✓ TotalReclaw is already set up.`)
Confidence
84% confidence
Finding
The fallback pairing flow instructs launching a detached background process with `setsid` so it outlives the shell session. Detached persistence is risky because it leaves a long-lived process outside normal agent supervision, complicates cleanup, and can be abused to maintain state or connectivity beyond the expected task lifetime.

VirusTotal

VirusTotal findings are pending for this skill version.

View on VirusTotal

Static analysis

No suspicious patterns detected.