If you discover a security vulnerability, please report it responsibly:
- Do NOT open a public GitHub issue
- Use GitHub's private vulnerability reporting
- Include: description, steps to reproduce, potential impact
- Expect initial response within 48 hours
- Google OAuth 2.0 only (no email/password)
- JWT tokens stored as httpOnly cookies (not accessible via JavaScript)
- 15-minute token expiration
- Rate limiting on auth endpoints (10 req/min)
httpOnly: true— Prevents JavaScript accesssecure: truein production — HTTPS onlysameSite: "lax"— CSRF protectionpath: "/"— Cookie available on all routes
- Global rate limiting (30 req/min per IP)
- CORS configured per environment
- Input validation via class-validator
- SQL injection prevention via Prisma ORM
- Quota enforcement on analysis creation (free tier: 3/month)
- SSH key-only authentication (port 2222)
- Fail2Ban (5 failed attempts → 1hr ban)
- UFW firewall (ports 22, 80, 443 only)
- Unattended security updates
- Docker:
no-new-privileges:trueon all services - Systemd:
ProtectSystem=strict,PrivateTmp=yes
- Environment variables for secrets (never committed)
- Signed URLs for clip downloads (API streams from MinIO/local storage)
- HTTPS via Let's Encrypt / Certbot
- Security headers (CSP, HSTS, X-Frame-Options)
| Version | Supported |
|---|---|
| 1.0.x | Yes |
| < 1.0 | No |
- Dependencies are audited via
pnpm audit - Prisma client generated from schema (no raw SQL)
- yt-dlp and FFmpeg called via
execFile(not shell injection)