If you discover a security vulnerability in Shellius, please report it responsibly.
Do NOT open a public GitHub issue for security vulnerabilities.
Instead, email us at: security@yavlabs.com
Include:
- Description of the vulnerability
- Steps to reproduce
- Impact assessment (e.g. credential disclosure, privilege escalation, RCE)
- Suggested fix (if any)
We will acknowledge your report within 48 hours and provide a timeline for a fix.
| Version | Supported |
|---|---|
| 0.1.x | Yes |
When deploying Shellius:
- Always use HTTPS (TLS) in production. Terminate TLS at Traefik or Nginx.
- Generate strong, unique values for
JWT_SECRET,JWT_REFRESH_SECRET,SERVER_ENCRYPTION_KEY, andAGENT_SHARED_SECRET-- never reuse defaults or example values. - Use a dedicated PostgreSQL user with minimal privileges (the migrations only need owner rights on the Shellius database).
- Restrict network access to PostgreSQL, Redis, and
guacdto the internal Docker network. Never expose them to the public internet. - Keep Docker images and dependencies up to date. Watch for advisories on
ssh2,prom-client,prisma, andguacd. - Enable audit logging review -- the
AuditLogtable is immutable; ship it to a SIEM if you have one. - Configure SSO with enforced MFA where possible.
- Rotate the SSH CA periodically via Administration -> Certificate authority -> Rotate CA. Existing certificates will continue to validate until their TTL expires.
- Backup PostgreSQL and the recordings volume (
scripts/backup-db.sh,scripts/backup-recordings.sh). - Set
RECORDING_RETENTION_DAYSaccording to your compliance requirements; thesessionCleanupjob will prune older recordings hourly. - Protect the Prometheus
/api/metricsendpoint by settingMETRICS_TOKEN(callers must sendAuthorization: Bearer <token>). - Treat the CA private key as the most sensitive asset in the system. It is encrypted at rest with
SERVER_ENCRYPTION_KEY; if that key leaks, the CA must be rotated and all certificates re-issued.