[Pkg-sogo-maintainers] Bug#1142810: sogo: TOTP 2FA broken with SQL user source: secret stored but not recognised at login
Salvatore Bonaccorso
carnil at debian.org
Tue Aug 18 15:56:44 BST 2026
Hi Peter,
On Sat, Aug 15, 2026 at 01:30:01PM +0200, Peter Wienemann wrote:
> Control: tags -1 + security trixie bookworm fixed-upstream patch
>
> Hi Ben,
>
> thanks for your report. I am sorry about that.
>
> On 2026-07-26 15:17:14, ben wrote:
> > Package: sogo
> > Version: 5.12.1-3+deb13u2
> > Severity: important
> >
> > Dear Maintainer,
> >
> > Since the security update 5.12.1-3+deb13u2 (which backports the fix for
> > CVE-2026-33550), TOTP two-factor authentication can no longer be used
> > when the user source is an SQL (PostgreSQL) source: the secret is stored
> > but is not recognised at login, so 2FA is silently disabled.
> >
> > Environment
> > -----------
> > - Debian 13 (trixie), sogo 5.12.1-3+deb13u2
> > - SOGoUserSources: type = sql, PostgreSQL view, canAuthenticate = YES,
> > userPasswordAlgorithm = ssha512
> > - Profile store: PostgreSQL table sogo_user_profile
> >
> > Steps to reproduce
> > ------------------
> > 1. In Preferences, tick "Enable two-factor authentication using a TOTP
> > application", scan the QR code, and enter the confirmation code.
> > -> The confirmation code is accepted (setup appears to succeed).
> > 2. Log out, then log in again.
> >
> > Actual result
> > -------------
> > Instead of being prompted for the TOTP code, the user is shown:
> > "Two-factor authentication has been disabled for your account. Please
> > visit your preferences to restore its use and reconfigure your TOTP
> > application."
> >
> > sogo.log at login shows, on every login:
> > SOGoRootPage New TOTP key for '<user>' must be created
> >
> > Expected result
> > --------------
> > Subsequent logins should prompt for the TOTP code; 2FA should stay
> > enabled.
> >
> > The secret IS persisted correctly
> > ---------------------------------
> > Inspecting sogo_user_profile for the affected user:
> > - c_defaults contains "SOGoTOTPEnabled":1
> > - c_settings contains "totpKey" with a value of length 20
> > (the write path correctly applies the CVE-2026-33550 change from a
> > 12-char to a 20-char secret).
> >
> > So the *write* path stores a valid 20-character key, but the *login/read*
> > path does not recognise it and decides a new key "must be created", which
> > disables 2FA. The enable (write) and login (read) code paths appear to be
> > out of sync — this looks like an incomplete backport of the upstream TOTP
> > fix (5.12.6 / 5.12.7) onto the 5.12.1 base shipped in trixie.
> >
> > Fix availability
> > ----------------
> > This appears to be already fixed in the upstream 5.12.x line: sogo 5.12.9-1
> > is currently in testing/unstable and ships the proper upstream TOTP code
> > (rather than a backport onto 5.12.1). This report is therefore mainly a
> > request to have the corrected TOTP handling reach *stable* (trixie) as a
> > point/security update, since stable users on 5.12.1-3+deb13u2 with an SQL
> > user source currently cannot use 2FA at all.
> >
> > Ruled out
> > ---------
> > - Clock: server is NTP-synchronised and at the correct time.
> > - Authenticator app: 1Password and Google Authenticator produce the same
> > code, and the confirmation code is accepted, so the shown secret is
> > valid.
> > - Profile size / truncation: c_defaults is ~3.3 kB; c_defaults and
> > c_settings are TEXT columns (no truncation).
> > - memcached: healthy, zero evictions; issue persists after restarting
> > both sogo and memcached.
> > - A clean disable / restart(sogo + memcached) / re-enable cycle
> > reproduces the problem every time.
> I prepared a patch that hopefully fixes this:
>
> https://salsa.debian.org/wiene/sogo/-/commits/trixie-pending
>
> (corresponding debdiff is attached).
>
> It integrates upstream commit [0].
>
> Ben, do you have an opportunity to test whether this actually fixes the
> issue for you? You can find debs including the patch on [1].
>
> @Security team: Do you think this justifies a regression update for DSA
> 6366-1?
Let's fix this via a regression update to the DSA. Can you plese
upload to security-master?
Regards,
Salvatore
More information about the Pkg-sogo-maintainers
mailing list