Back to skill
Skillv1.0.1

ClawScan security

Fast Unified Memory · ClawHub's context-aware review of the artifact, metadata, and declared behavior.

Scanner verdict

SuspiciousApr 29, 2026, 4:16 AM
Verdict
suspicious
Confidence
high
Model
gpt-5-mini
Summary
The skill's code generally matches its stated purpose (local Ollama embeddings + file memory) but contains clear incoherences—notably a hard-coded absolute OpenClaw path and user id—that are unexpected and could cause privacy or access surprises.
Guidance
What to consider before installing or running this skill: - The core functionality is coherent: it uses a local Ollama instance for embeddings and combines vector search with keyword search over a file-based memory store. - Red flag: the code hard-codes /home/broedkrummen/.openclaw/workspace/memory and default user_id 'broedkrummen'. This is inconsistent with the documented '~/.openclaw/...' and may cause the script to: (a) silently fail on systems with a different username; or (b) read another user's OpenClaw memory if that exact path exists. Either outcome is unexpected and could leak or access private local files unintentionally. Recommended actions before use: - Inspect and (preferably) modify fast-unified-memory.js to make the OpenClaw path configurable. For example, compute MEMORY_DIR from process.env.HOME (or accept a CLI flag or env var) rather than hard-coding a username. - Replace hard-coded userId defaults with a dynamic value (e.g., process.env.USER or a provided --user flag) so mem0 operations are scoped to the current user. - Run the tool in a controlled environment (or with a test user) the first time to confirm which directories it reads and what it writes to ~/.mem0/fast-store.json. - Confirm Ollama is only listening on localhost and that network exposure/ports are acceptable for your threat model. - If you cannot or do not want to edit the code, avoid running it with elevated privileges and search the repository for hard-coded paths/identifiers before running. Confidence note: High confidence in the assessment that the hard-coded path/username is an incoherence and a practical concern. There is no evidence of network exfiltration or external endpoints beyond the documented local Ollama API.

Review Dimensions

Purpose & Capability
concernThe skill claims to combine local file-based OpenClaw memory with local Ollama embeddings, which is consistent with the code's behavior. However, the code hard-codes MEMORY_DIR = '/home/broedkrummen/.openclaw/workspace/memory' and default user_id = 'broedkrummen', while SKILL.md documents a tilde (~) path and generic behavior. The hard-coded username/path is not justified by the description and is an incoherence.
Instruction Scope
concernSKILL.md instructs only to install and run Ollama, pull the model, and run the CLI. The runtime JS mostly stays inside that scope (calls localhost Ollama embeddings, reads/writes a local JSON store, scans a file directory). However, the code will attempt to read files under a specific absolute path (/home/broedkrummen/...) which is not mentioned in the documentation and could cause the skill to read another user's OpenClaw memory if that path exists. The instructions do not disclose that behavior.
Install Mechanism
okNo install spec or third-party downloads included by the skill itself. The SKILL.md tells the user to install Ollama from its official install script and pull a model; the skill's code has no external download/exec beyond calling Ollama's local HTTP API. No archive downloads or external code fetches in the skill.
Credentials
noteThe skill requests no environment variables. It reads process.env.HOME for the mem0 store (expected). But it also embeds a specific username in both the OpenClaw path and mem0 user_id defaults, which is disproportionate/unexpected: these should normally be derived from HOME or a config, not hard-coded. This could cause the tool to ignore the current user or to access another user's files if present.
Persistence & Privilege
okThe skill does not set always:true and does not request system-wide privileges. It writes/reads only its own store (~/.mem0/fast-store.json) and attempts to read the OpenClaw path. Autonomous invocation (disable-model-invocation: false) is the platform default; combined with the hard-coded path this increases the blast radius slightly but by itself is not unusual.