Security Policy
Supported Versions
LimbicDB is stable (v5.0.2). Only the most recent release series receives security fixes.
| Version | Supported |
|---|---|
| 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
| Protection | Mechanism |
|---|---|
| At-rest encryption | AES-256-GCM via MemoryVault — encrypt memory content, metadata stays queryable |
| Sync payload integrity | Ed25519 signatures via wrapWithSigning() — detects tampering and forgery |
| Sync peer authentication | Trusted peer public key list — rejects unknown nodes |
| Path traversal prevention | validateFilePath() canonicalizes and validates all paths |
| Input injection | All inputs to remember(), recall(), forget() validated for length, type, character sets |
| Event loop protection | Large similarity computations chunked with setImmediate yields |
| SQLite contention | WAL mode + busy_timeout prevent SQLITE_BUSY errors |
| Namespace isolation | SHA-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
- Report received via email.
- Acknowledgement within 48 hours.
- Fix developed and tested.
- Release shipped.
- Public disclosure 7–14 days after the fix.
Last updated: 2026-04-13 (v5.0.2)