| Version | Supported |
|---|---|
| main | Yes |
Only the latest version on the main branch receives security updates.
Please do not open a public GitHub issue for security vulnerabilities.
Report vulnerabilities by emailing the maintainer directly (see the repository's contact information). Include as much detail as possible:
You will receive an acknowledgement within 48 hours and a more detailed response within 5 business days outlining next steps. Once the fix is deployed, you will be credited in the release notes unless you request anonymity.
All user-set passwords must meet the following requirements:
helmet middleware sets security headers (HSTS, X-Frame-Options, X-Content-Type-Options, etc.)WEB_URL originSameSite=Lax; Secure cookies are used for OAuth state and optional session data| Endpoint category | Window | Limit |
|---|---|---|
| Global (all routes) | 1 min | 100 |
| Auth (login, register) | 15 min | 10 |
| Guest login | 5 min | 30 |
| Room creation | 1 hour | 20 |
| Forgot/reset password | 15 min | 10 |
| Socket: join room | 1 min | 10 |
| Socket: submit vote | 1 min | 30 |
POST /api/v1/rooms/cleanup requires the X-Admin-Key header matching the ADMIN_API_KEY environment variable; returns 503 if unconfigured.
| Issue | Status |
|---|---|
| JWTs stored in localStorage (XSS risk) | Planned: migrate to HttpOnly cookie storage |
| No email verification on registration | Planned |
| CSRF tokens not implemented | Low risk with JWT-in-header auth; will be required if cookie auth is fully adopted |
| No Sentry/error-monitoring in production | Planned |
| Password reset emails logged to stdout (dev only) | Needs email provider integration before production |
We follow a 90-day disclosure timeline: vulnerabilities reported to us will be disclosed publicly no earlier than 90 days after the initial report, or after a patch is released — whichever comes first.