LifeOS is a rolling-release self-hosted project. Only the main branch receives security fixes. If you're running an older commit, please rebase / pull first.
Do not open a public GitHub issue.
Email the maintainer privately, or use GitHub's private vulnerability reporting on this repo.
Please include:
- A description of the issue.
- Steps to reproduce (or a proof-of-concept).
- Affected version / commit SHA.
- Impact assessment (what an attacker can do).
You'll get an acknowledgement within 72 hours and, where possible, a fix or mitigation plan within 14 days.
In scope:
- Authentication bypass / privilege escalation
- Session token leakage
- SQL injection, XSS, CSRF
- Sensitive data leakage in logs, AI prompts, or
ai_messagesrows - Whoop OAuth / webhook signature bypass
- Container / Dockerfile misconfigurations
- Dependency vulnerabilities with a realistic exploit path
Out of scope:
- Issues that require physical access to the server
- DoS via raw request volume (it's a single-admin app — rate-limit at your reverse proxy)
- Self-XSS that requires the admin to paste hostile content into their own UI
- Outdated dependencies without a demonstrable exploit
If you deploy LifeOS publicly:
- Rotate
SESSION_SECRETandADMIN_PASSWORDimmediately after first login. - Put the app behind HTTPS (Cloudflare proxy or Let's Encrypt at your reverse proxy).
- Restrict
POST /api/whoop/syncif you expose it for cron — use Whoop's webhook with HMAC verification instead where possible. - Use a strong
FAL_KEYand treat it as a billing credential — anyone with the key can spend your fal credits. - Back up your Postgres volume regularly. The
ai_messagestable contains your prompts and responses. - Keep Docker images updated —
docker compose pull && docker compose up -d --buildperiodically.