T03 · Remote Payload Retrieval and Execution
- Location
scripts/install.sh:9- Finding
Mutable Remote Repository Is Installed and Persistently Executed
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This memory-system skill is purpose-aligned, but its installer and examples grant persistent execution and remote data-sharing paths with weak scoping and supply-chain controls.
Review this carefully before installing. Only run it in an isolated account or test environment, pin the Git repository and Qdrant artifacts to reviewed versions, inspect service files before enabling them, protect or avoid plaintext API keys, disable federation unless you explicitly need it, and do not use the public HTTP federation example with real memories.
scripts/install.sh:9Mutable Remote Repository Is Installed and Persistently Executed
scripts/install.sh:29Unverified Mutable Qdrant Archive Is Downloaded and Executed
SKILL.md:53API Credentials Are Stored in Plaintext Without Explicit Permission Hardening
SKILL.md:127Federation Example Uses a Hard-Coded External Host over Plaintext HTTP
The skill instructs users to place multiple credentials in a plaintext .env file, including API keys and database connection details, without discussing file permissions, secret storage, or leakage risks. In multi-user systems or agent environments, such files are commonly exposed through logs, backups, process environments, or accidental repository inclusion.
cat > ~/memclawz/.env << EOF
OPENAI_API_KEY=<your-key>
ANTHROPIC_API_KEY=<your-key>
QDRANT_HOST=localhost
Skill manipulates agent memory, state, or stored context. Memory corruption can alter personality, override safety rules, or cause unpredictable behavior.
→ {"total_memories": N, "by_type": {...}, "by_agent": {...}, "by_source": {...}}
## Delete Memory
DELETE /api/v1/memory/<memory_id>
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).
DELETE /api/v1/memory/<memory_id>
→ {"status": "deleted"}
The skill documents shell-based installation, service management, and network operations but declares no tool scope or allowed-tools restrictions. In an agent setting, this can lead to overbroad execution authority where the skill may trigger privileged local commands without explicit containment or user awareness.
The Docker command uses the floating image reference qdrant/qdrant without a version tag or digest, making builds non-reproducible and exposing users to upstream image changes or supply-chain compromise. A later malicious or incompatible image could be pulled automatically and run as a persistent service.
The skill enables multiple user-level systemd services to start automatically and persist across sessions, including API, watcher, and cron components, without emphasizing the persistence and background execution implications. In an agent context, this expands the window for misuse, unintended data collection, and ongoing network/service exposure after the initial setup step.
cp ~/memclawz/systemd/*.service ~/.config/systemd/user/
systemctl --user daemon-reload
systemctl --user enable --now neo4j memclawz-api memclawz-watcher memclawz-cron
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
curl http://localhost:3500/health
# {"status":"ok","version":"6.0.0","qdrant":"ok","neo4j":"ok","graphiti":"ok","federation":"ok",...}
The federation section explicitly supports pushing and pulling memories to remote nodes, including a public IP example, but provides no warning about privacy, data sensitivity, trust boundaries, or operator consent. Because this system handles agent memories and knowledge, remote synchronization can expose sensitive internal data, personal information, or operational context outside the local environment.
This markdown file documents a memory deletion operation that can permanently affect user data, but it provides no warning about the destructive nature of the action or any confirmation expectations. Under the markdown-file criteria, descriptions that omit warnings about behaviors affecting user data should be flagged.
The architecture states that conversation data is automatically extracted from the LCM database and sent to Mem0, Qdrant, and Anthropic/OpenAI-backed processing components, but it does not warn users that potentially sensitive conversation content may be transmitted to external AI services. This creates a real privacy and compliance risk because operators or users may enable or deploy the system without informed consent, data handling review, or tenant-specific restrictions.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
pip3 install -r requirements.txt
# Check Qdrant
if curl -s http://localhost:6333/healthz >/dev/null 2>&1; then
echo "✅ Qdrant running"
else
echo "⚠️ Qdrant not running. Starting..."
The installer pulls and runs the qdrant/qdrant Docker image without a pinned tag or digest, so the exact artifact executed can change over time and may be replaced by a compromised or malicious image upstream. In an install script that automatically starts long-lived services, this creates a real software supply chain risk because users implicitly trust and execute whatever image is current at install time.
This installer makes persistent user-environment changes and immediately starts background services without prompting the user or clearly separating install from activation. That is dangerous because it can unexpectedly expose local services, consume resources, and create persistence mechanisms that survive the shell session, especially in an agent-memory system that deploys multiple components.
Launching Qdrant with nohup ... & starts a detached background process that persists beyond the current shell session, without supervision, user confirmation, or easy visibility. In an automated installer, this is risky because it creates an unsupervised service from a freshly downloaded binary, which can continue listening locally and writing data after installation completes.
else
echo "📥 Downloading Qdrant binary..."
curl -sL https://github.com/qdrant/qdrant/releases/latest/download/qdrant-x86_64-unknown-linux-musl.tar.gz | tar xz -C ~/memclawz/
nohup ~/memclawz/qdrant --storage-path ~/.openclaw/qdrant-storage > /tmp/qdrant.log 2>&1 &
fi
sleep 3
fi
Creating ~/.config/systemd/user and copying service files there establishes the mechanism for user-level persistence. In context, this is part of an installer that deploys long-running agent-memory services, so silently planting service units increases risk because the user may not realize background execution and restart behavior have been configured.
fi
# Deploy systemd services
mkdir -p ~/.config/systemd/user
cp ~/memclawz/systemd/*.service ~/.config/systemd/user/
systemctl --user daemon-reload
systemctl --user enable --now memclawz-api memclawz-watcher
systemctl --user enable --now both starts the services immediately and configures them to persist across future user sessions. In a setup script, that creates lasting execution of code fetched from a repository without requiring a separate trust decision, increasing the blast radius if the repository or service definitions are unsafe.
mkdir -p ~/.config/systemd/user
cp ~/memclawz/systemd/*.service ~/.config/systemd/user/
systemctl --user daemon-reload
systemctl --user enable --now memclawz-api memclawz-watcher
echo "✅ MemClawz v5 installed!"
echo "API: http://localhost:3500/health"
The skill advertises sleep-time reflection that produces MEMORY.md update proposals without clearly warning that local knowledge artifacts may be automatically altered. In agent workflows, silent or poorly bounded updates to canonical memory files can corrupt trusted context, introduce prompt injection persistence, or overwrite user-authored knowledge.
The documentation describes an endpoint that changes persisted memory content but does not mention that it alters stored user data. For markdown skill documentation, operations affecting user data should include a brief caution so users understand the impact before using them.
No suspicious patterns detected.