v1.8.5 — Chromium OAuth login fix + DB-enforced email uniqueness
v1.8.5 — Chromium OAuth login fix + DB-enforced email uniqueness
Patch release. Restores SSO login in Chromium browsers, hardens email-identity uniqueness at the database layer, and dispositions two newly-published base-image CVEs.
Fixed
- OAuth/OIDC login silently failing in Chrome & Edge (#593). The GitHub and Okta/OIDC "Sign in" buttons did nothing in Chromium-based browsers while working in Firefox. Root cause: the global Content-Security-Policy
form-action 'self'blocked the OmniAuth → identity-provider redirect — Chromium enforcesform-actionagainst every hop in a post-submit redirect chain, Firefox does not. The login page now relaxesform-actionto the configured IdP origins only (GitHub, GitLab, the OIDC issuer host); strictform-action 'self'remains in force on every other page.
Security & hardening
- Database-enforced case-insensitive email uniqueness (#593). A functional
UNIQUEindex onLOWER(email)replaces the previous raw-email index. This closes a workaround where, with both local login and OIDC enabled, two accounts differing only by letter case (Jane.Doe@x.comvsjane.doe@x.com) could coexist. The migration pre-flights for pre-existing case-variant duplicates and backfills legacy mixed-case rows. - CVE dispositions. Two newly-published base-image
perlCVEs — CVE-2026-8376 (32-bit-only, won't-fix; not applicable to our 64-bit images) and CVE-2026-42496 (Archive::Tarsymlink traversal;perlis transitive fromruby:slimand never invoked by the app) — are tracked asfalse_positiveindocs/compliance/sparc-findings.yml. The Grype scan gate now honors that disposition registry as its single source of truth.
Upgrade notes
- The email-uniqueness migration is a schema migration that runs synchronously at container boot (
db:prepare). If any pre-existing case-variant duplicate emails exist, the migration fails fast with the offending list rather than silently merging accounts — resolve those before deploying. (Expected count: none.) - No configuration changes required. Requires a deploy to reach environments still on v1.8.2.
Closes #593.