Do not open public GitHub issues for security vulnerabilities.
Email security@elixpo.ai with:
- Description of the vulnerability
- Steps to reproduce
- Potential impact
- Affected component (backend, frontend, cache library, Docker image)
We will acknowledge receipt within 24 hours and provide updates every 48 hours.
| Package | Version | Supported |
|---|---|---|
| lixSearch (backend) | 2.x | Active |
| lix-open-cache (PyPI) | 2.x | Active |
| lix-open-search (PyPI) | 2.x | Active |
| LixSearch (Docker) | latest | Active |
Always run the latest version for security patches.
All internal services communicate over a private Docker network. No internal ports are published to the host.
| Service | Port | Exposed to host? |
|---|---|---|
| nginx | 80, 443, 10001 | Yes (only entry point) |
| App workers | 9002 | No |
| IPC service | 9510 | No |
| ChromaDB | 9001 | No |
| Redis | 9530 | No |
- nginx (port 10001): API key required via
X-API-Keyheader or?key=query param - nginx (port 80): Internal/dev access, no API key
- App-level:
INTERNAL_API_KEYenv var for service-to-service calls - IPC service: Shared authkey (
IPC_AUTHKEYenv var) - Redis: Password-protected (
REDIS_PASSWORDenv var)
nginx enforces per-IP rate limits:
| Endpoint | Limit |
|---|---|
/api/search, /v1/* |
50 req/s, burst 10 |
/api/chat |
30 req/s, burst 5 |
/api/session* |
100 req/s, burst 20 |
| General | 100 req/s |
- Redis: In-memory with AOF persistence. Stores session data (30-min hot window), semantic cache (5-min TTL), URL embeddings (24h TTL)
- Disk archives: Huffman-compressed
.hufffiles with 30-day TTL, auto-cleaned on startup - ChromaDB: Vector embeddings stored on persistent volume
No user credentials or PII are stored by the search engine itself.
- Change all default passwords in
.env(REDIS_PASSWORD,IPC_AUTHKEY,API_KEY) - Use TLS via reverse proxy (nginx, Cloudflare) for all external traffic
- Restrict firewall to only expose nginx ports (80, 443, 10001)
- Set Docker resource limits (CPU, memory) on app containers
- Enable access logging and monitor for anomalies
- Run
pip-auditperiodically againstrequirements.txt - Keep base images updated (
python:3.11-slim,redis:7-alpine,chromadb/chroma) - Never commit
.envfiles or credentials to version control
Hidden File Protection
nginx blocks access to dotfiles (.git, .env, .htaccess, etc.):
location ~ /\. {
deny all;
access_log off;
log_not_found off;
return 404;
}| Day | Action |
|---|---|
| 0 | Report received and acknowledged |
| 1-2 | Investigation and verification |
| 3-7 | Fix development |
| 7-14 | Patch released |
| 14-21 | Advisory published |
In scope:
- Authentication and authorization bypasses
- Injection vulnerabilities (SQL, command, SSRF)
- Unauthorized data access or leakage
- Code execution flaws
- Denial of service via application logic
- Cryptographic weaknesses
Out of scope:
- Social engineering
- Third-party dependency vulnerabilities (report upstream)
- User configuration errors
- Physical or infrastructure-level attacks
- Security issues: security@elixpo.ai
- General issues: GitHub Issues
Last reviewed: March 2026