Back to skill

Security audit

Memorine

Security checks for vulnerabilities and agentic risk

Overview

Memorine is a coherent local memory skill, but users should understand that it persists and can share agent memories and installs Python package code to run its MCP server.

Install this only in environments where persistent agent memory is appropriate. Do not store secrets or regulated data unless the database path, file permissions, backups, and sharing rules are controlled, and prefer pinning the memorine package version and hash for production use.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:10
Finding
Unpinned Third-Party Package Is Installed and Executed as an MCP Server## Vulnerability Details **File Location**: `SKILL.md:10-14`; additional installation instructions at `SKILL.md:54-67` and `README.md:31-48` **Vulnerability Type**: Unpinned and unauditable executable dependency **Risk Level**: Medium ### Vulnerable Code `SKILL.md:10-14`: ```yaml install: - kind: uv package: memorine bins: [memorine] entry: uv run python -m memorine.mcp_server ``` `SKILL.md:54-67`: ```bash pip install memorine ``` ```json { "mcpServers": { "memorine": { "command": "python3", "args": ["-m", "memorine.mcp_server"] } } } ``` `README.md:31-48`: ```bash pip install memorine ``` ```bash pip install memorine[embeddings] ``` ```bash pip install memorine[ui] ``` Everything? `pip install memorine[all]`. The base install stays at zero dependencies and works on its own. The extras are optional layers on top. ### Technical Analysis The Skill installs the third-party `memorine` package without an exact version, package hash, lockfile, or vendored source and then executes `memorine.mcp_server`. The audited artifact contains only documentation and configuration, so the actual code receiving MCP requests and accessing the persistent SQLite memory cannot be reviewed from this project. Because package resolution is not constrained, the code installed by the same instructions can change after the Skill has been audited. Installation of optional extras similarly leaves their transitive dependency versions unconstrained and broadens the supply-chain attack surface. A compromised publisher account, malicious future release, or dependency compromise could therefore cause attacker-controlled Python code to be installed and executed under the identity running the agent. This finding does not establish that the current `memorine` package is malicious. It establishes that the Skill trusts and executes mutable, unpinned thi ...[truncated 1658 chars]
Remediation
## Remediation Suggestions 1. Pin `memorine` to an exact, reviewed release in both the OpenClaw installation metadata and all command examples. 2. Require cryptographic hashes for downloaded distributions, such as through a hash-locked requirements file using `pip --require-hashes`. 3. Commit a lockfile that fixes all direct and transitive dependencies, including separate dependency sets for the `embeddings`, `ui`, and `all` extras. 4. Include or vendor the runtime source in the audited artifact so the MCP server, ownership validation, database access, and network behavior can be reviewed alongside the Skill. 5. Verify package publisher provenance and release signatures in CI, and run dependency vulnerability and integrity scanning before updates are accepted. 6. Prevent automatic installation of newer releases until they have passed source review and sandbox testing. 7. Run the MCP server under a dedicated least-privileged account or sandbox with access limited to its required database directory. Restrict network access unless it is explicitly required. 8. Document the exact package version and hashes whose behavior supports the security assertions made in `SKILL.md`.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (4)

Missing User Warnings

Medium
Confidence
92% confidence
Finding
The multi-agent sharing and team knowledge features are documented as straightforward sharing mechanisms without warning users that information may cross agent boundaries and become visible to other principals. In an agent memory product, this can lead to accidental disclosure of sensitive operational, personal, or tenant-specific data if users assume memories are isolated by default.

Missing User Warnings

Medium
Confidence
88% confidence
Finding
The README encourages generating a full cognitive profile and dropping it into a system prompt, but it does not warn that this may expose sensitive facts, events, credentials, or internal operational history to downstream models, logs, or prompt captures. In a memory system for agents, profile dumping materially increases the risk of unintended data disclosure because it aggregates and exports all stored context in one step.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The README states that all agent memory is stored in a default local SQLite file and that all agents share the same database, but it does not warn that sensitive data is persisted on disk and may be accessible through file-system access, backups, or host compromise. Because this product is explicitly designed to retain facts, events, and procedures, local persistence meaningfully expands the exposure window for confidential data.

Missing User Warnings

Medium
Confidence
92% confidence
Finding
The skill documentation describes cross-agent sharing and states that everything lives in a single SQLite file, but it does not clearly warn users in the main setup/usage section that agent data is persisted locally and may be shared across agents through one database. This can lead operators to enable the skill without understanding retention, privacy, and multi-agent data exposure risks, increasing the chance of unintended disclosure of sensitive prompts, facts, or operational history.

Static analysis

No suspicious patterns detected.