Skip to content

Security Policy

Supported Versions

LimbicDB is stable (v5.0.2). Only the most recent release series receives security fixes.

VersionSupported
v5.0.x✅ Yes
< 5.0❌ No

Reporting a Vulnerability

Do not open a public GitHub issue.

Email: 770668004@qq.com

Include: description, steps to reproduce, potential impact. We acknowledge within 48 hours and disclose publicly ~7–14 days after a patch is shipped.


Security Architecture

What LimbicDB Protects

ProtectionMechanism
At-rest encryptionAES-256-GCM via MemoryVault — encrypt memory content, metadata stays queryable
Sync payload integrityEd25519 signatures via wrapWithSigning() — detects tampering and forgery
Sync peer authenticationTrusted peer public key list — rejects unknown nodes
Path traversal preventionvalidateFilePath() canonicalizes and validates all paths
Input injectionAll inputs to remember(), recall(), forget() validated for length, type, character sets
Event loop protectionLarge similarity computations chunked with setImmediate yields
SQLite contentionWAL mode + busy_timeout prevent SQLITE_BUSY errors
Namespace isolationSHA-256 derived file paths — separate physical files per namespace

⚠️ Threat Model: Known Limitations

1. Sync Signing is Opt-In

Ed25519 signing (wrapWithSigning()) is available but not enforced by default. Without signing:

  • Sync payloads are transferred in plaintext
  • No authentication of peer identity

Mitigation: Use wrapWithSigning() for any non-trusted network. See Sync Signing docs.

2. SQLite File Access

Without MemoryVault encryption, the .limbic file is readable by any process with filesystem access.

Mitigation: Use MemoryVault.fromPassphrase() for sensitive data, or OS-level file permissions.

3. No Multi-Tenant Row-Level Isolation

All memories in a single .limbic file are accessible to any code that opens it.

Mitigation: Use separate files per trust boundary, or use namespace isolation (open({ path, namespace })).

4. Embedder Trust

Custom embedder functions run with full process privileges.

Mitigation: Only use embedder functions from trusted sources. The built-in auto-embedder runs locally via ONNX Runtime.


Security Disclosure Timeline

  1. Report received via email.
  2. Acknowledgement within 48 hours.
  3. Fix developed and tested.
  4. Release shipped.
  5. Public disclosure 7–14 days after the fix.

Last updated: 2026-04-13 (v5.0.2)

Released under the MIT License.