| Version | Supported |
|---|---|
| 0.2.x | ✓ |
| < 0.2 | ✗ |
Do not open a public GitHub issue for security vulnerabilities.
Report privately via GitHub Security Advisories:
- Go to https://github.com/Lians-ai/Lians/security/advisories
- Click "Report a vulnerability"
- Fill in the details
Alternatively email security@lians.dev with:
- Description of the vulnerability
- Steps to reproduce
- Potential impact
- Any suggested fix
We will acknowledge receipt within 48 hours and provide a remediation timeline within 7 days.
In scope:
- SQL injection or data isolation bypass in the API layer
- Authentication/authorisation bypass (
X-API-Key,X-Admin-Secret) - Information barrier (RLS) bypass allowing cross-namespace data access
- Cryptographic weaknesses in the AES-256-GCM per-subject encryption
- Audit chain (SHA-256 hash chain) tampering or bypass
- Remote code execution via any input path
Out of scope:
- Issues in dependencies that are already publicly disclosed upstream
- Theoretical attacks with no practical exploit path
- Denial-of-service via resource exhaustion without auth bypass
Lians enforces isolation at multiple layers:
- API key authentication — all data-plane routes require
X-API-Key; keys are stored as SHA-256 HMAC hashes, never plaintext - Admin secret — a separate credential (
X-Admin-Secret) gates all/v1/admin/*routes; it is not derivable from agent keys - PostgreSQL RLS — information barriers are enforced at the database layer with
FORCE ROW LEVEL SECURITY, not the application layer - AES-256-GCM encryption — each subject's memories are encrypted under a unique data-encryption key (DEK); destroying the DEK makes the data cryptographically unrecoverable (GDPR crypto-shred)
- Append-only audit chain — every write is recorded in a SHA-256 hash chain; audit rows are never updated or deleted
We follow coordinated disclosure. Once a fix is ready we will:
- Release a patched version
- Publish a GitHub Security Advisory
- Credit the reporter (unless they prefer anonymity)