Bug#1148082: gnome-keyring: gnome-keyring-daemon segfaults in libgck-1 after 50.0-1 -> 51.0-1 upgrade
mariodebian at gmail.com
mariodebian at gmail.com
Wed Sep 16 20:46:32 BST 2026
Package: gnome-keyring
Version: 51.0-1
Severity: important
X-Debbugs-Cc:
Dear Maintainer,
After the upgrade from gnome-keyring 50.0-1 to 51.0-1 (together with
gcr4/libgck-2-2/libgcr-4-4 4.4.0.1-8+b2 -> 4.4.1-2 on the same day),
gnome-keyring-daemon started segfaulting repeatedly whenever a client
tries to unlock or write to the "login" collection (e.g. GNOME Online
Accounts saving an OAuth2 token, or a GUI password prompt completing).
This makes the secrets service effectively unusable: every application
that stores or retrieves a secret (Evolution's IMAP/SMTP passwords,
GNOME Online Accounts tokens, the SSH agent component) has to re-ask
for credentials every session, because gnome-keyring-daemon dies and
restarts with an empty/locked state in the middle of the operation.
Downgrading gnome-keyring, gnome-keyring-pkcs11 and libpam-gnome-
keyring
back to 50.0-1 (from snapshot.debian.org) immediately fixed the
problem; the daemon has been stable for hours since the downgrade,
with the exact same ~/.local/share/keyrings contents and the exact
same SSH keys in ~/.ssh.
Steps to reproduce
-------------------
1. Have a "login" keyring that gnome-keyring-daemon manages (default
setup, PAM auto-unlock via pam_gnome_keyring).
2. Trigger a secret prompt/unlock, e.g.:
- Open Evolution and let it ask for the IMAP/SMTP password, or
- Add/refresh a Google account in GNOME Online Accounts (OAuth2
token needs to be stored), or
- Simply restart gnome-keyring-daemon and unlock the keyring via
the gcr-prompter dialog.
3. gnome-keyring-daemon crashes with SIGSEGV a few seconds after the
secret exchange with gcr-prompter completes.
4. systemd restarts the (systemd --user) service, which comes back
with the collection locked again, so every stored secret has to be
re-entered.
Observed crash (journalctl --user -u gnome-keyring-daemon.service)
--------------------------------------------------------------------
sep 16 20:46:07 host gcr-prompter[60485]: Gcr: completed password
prompt for callback :1.165@/org/gnome/keyring/Prompt/p3
sep 16 20:46:07 host gcr-prompter[60485]: Gcr: calling the PromptDone
method on /org/gnome/keyring/Prompt/p3@:1.165, and ignoring reply
sep 16 20:46:07 host systemd[1476]: gnome-keyring-daemon.service: Main
process exited, code=killed, status=11/SEGV
sep 16 20:46:07 host kernel: gnome-keyring-d[55426]: segfault at
f00dface ip 00007fa0a06e7482 sp 00007ffd1da93770 error 4 in libgck-
1.so.0.0.0[1d482,7fa0a06d4000+1d000] likely on CPU 0 (core 0, socket 0)
sep 16 20:46:07 host kernel: Code: 18 00 00 00 00 48 85 ff 0f 84 9a 00
00 00 48 89 fb 48 89 f5 49 89 d4 49 89 cd e8 d9 d6 fe ff 48 89 c6 48 8b
03 48 85 c0 74 05 <48> 39 30 74 0c 48 89 df e8 d1 d7 fe ff 85 c0 74 6d
48 85 ed 0f 84
The fault address (0xf00dface) looks like a memory-poisoning pattern,
suggesting a use-after-free/double-free rather than a plain NULL
pointer bug.
The same boot also shows repeated warnings just before some of the
earlier crashes, which may be related to the same underlying state
corruption:
gnome-keyring-daemon[NNNN]: asked to register item
/org/freedesktop/secrets/collection/login/N, but it's already
registered
gnome-keyring-daemon[NNNN]: Gck: gck_session_find_objects: assertion
'GCK_IS_SESSION (self)' failed
gnome-keyring-daemon[NNNN]: GLib-GObject: g_object_unref: assertion
'G_IS_OBJECT (object)' failed
Note: libgck-1-0 itself stayed at 3.41.2-6+b1 across the whole
timeframe (it did not get upgraded on 2026-09-15), so the regression
looks like it's in gnome-keyring's own use of libgck's PKCS#11/GObject
API rather than in libgck-1-0 itself.
Workaround
----------
Downgrade and hold at 50.0-1:
sudo dpkg -i gnome-keyring_50.0-1_amd64.deb \
gnome-keyring-pkcs11_50.0-1_amd64.deb \
libpam-gnome-keyring_50.0-1_amd64.deb
sudo apt-mark hold gnome-keyring gnome-keyring-pkcs11 libpam-gnome-
keyring
(.debs pulled from snapshot.debian.org,
archive/debian/20260317T150720Z/)
I don't have a symbolized backtrace (no gnome-keyring-dbgsym/systemd-
coredump
installed at the time), only the kernel oops line above. Happy to
install dbgsym packages and reproduce with 51.0-1 again to get a
proper `bt full` under gdb if that's useful — let me know.
-- System Information:
Debian Release: forky/sid
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: amd64
Kernel: Linux 7.1.13+deb14-amd64 (SMP w/ PREEMPT_DYNAMIC)
Locale: LANG=es_ES.UTF-8, LC_CTYPE=es_ES.UTF-8 (charmap=UTF-8),
LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash, /bin/bash linked to
/usr/bin/bash
Init: systemd (via /run/systemd/system)
Versions of packages gnome-keyring depends on:
ii dbus 1.16.2-5+b1
ii libgcrypt20 1.12.3-2
ii libglib2.0-0t64 2.90.0-1
ii libp11-kit0 0.26.5-1
ii libgck-1-0 3.41.2-6+b1
ii gcr4 4.4.1-2
ii libgck-2-2 4.4.1-2
ii libgcr-4-4 4.4.1-2
-- no debconf information
More information about the pkg-gnome-maintainers
mailing list