Nimbus Direct v1.7.4
Nimbus Direct v1.7.4 — Security Hardening
Nimbus Direct 1.7.4 strengthens the public authentication surface, improves error handling, and introduces a standard security contact for responsible disclosure.
Security improvements
- Prevented authentication forms from falling back to unsafe GET requests when JavaScript is unavailable.
- Added explicit POST methods to all pre-authentication forms.
- Blocked native form navigation through the Content Security Policy.
- Added safe
405 Method Not Allowedhandling for non-GET static requests. - Added a clear fallback notice when JavaScript is disabled.
- Removed filesystem paths,
ENOENTdetails, stack information, and operating-system errors from public responses. - Missing files now return a generic
not_foundresponse with a request ID. - Added an RFC 9116-compatible
/.well-known/security.txtsecurity contact. - Added a documented Nginx/Plesk security-header baseline for proxy-generated error responses.
Defense in depth
The new reverse-proxy documentation explains how to preserve HSTS, CSP, framing protection, referrer policy, cross-origin policies, and other security headers across successful responses and proxy-generated 4xx or 5xx errors.
See docs/REVERSE_PROXY_SECURITY.md after upgrading. Reverse-proxy configuration must be applied separately because edge-generated responses are outside the Nimbus container.
Verification
- 102 automated tests passing
- Authentication fallback regression coverage
- Filesystem disclosure regression coverage
- Security-header validation
security.txtpublication validation- English and German localization coverage remains at 100%
Upgrade
Existing installations can upgrade without a database migration.
Rebuild Nimbus using both Compose files when using the internal Proxmox connection configuration:
docker compose \
-f compose.yaml \
-f compose.internal.yaml \
up -d --build --force-recreate panelAfter deployment, apply the reverse-proxy recommendations from docs/REVERSE_PROXY_SECURITY.md and verify the headers on successful, missing-file, and rejected-method responses.