Package: dovecot-mysql Version: 1:2.3.4-2 Severity: grave Tags: security Justification: user security hole
Dear Maintainer, while running dovecot with the mysql auth package, I frequently get auth segfaults in the kernel log such as: [51013.656961] auth[17706]: segfault at 60 ip 00007f003b360a7b sp 00007ffe800d7f30 error 4 in libmariadb.so.3[7f003b354000+26000] [51013.658978] Code: 85 ff 0f 84 27 01 00 00 55 48 89 e5 41 54 53 48 8b 87 f0 04 00 00 48 89 fb 48 85 c0 74 2d 4c 8b 20 4d 85 e4 74 25 49 8b 04 24 <48> 8b 40 60 48 85 c0 74 02 ff d0 4c 89 e7 e8 92 3c ff ff 48 8b 83 I attached gdb to the auth process, but I was unable to get debug symbols for libmariadbclient.so.18. Anyway, I get these stacktraces for the crash - which seems to be a crash on disconnect / mysql_close(). #1 0x00007f59d8d08535 in __GI_abort () at abort.c:79 #2 0x00007f59d8d5f718 in __libc_message (action=action@entry=do_abort, fmt=fmt@entry=0x7f59d8e6a29a "%s\n") at ../sysdeps/posix/libc_fatal.c:181 #3 0x00007f59d8d65e3a in malloc_printerr (str=str@entry=0x7f59d8e6bf60 "free(): double free detected in tcache 2") at malloc.c:5382 #4 0x00007f59d8d6791d in _int_free (av=0x7f59d8ea1c40 <main_arena>, p=0x564222bd44e0, have_lock=<optimized out>) at malloc.c:4193 #5 0x00007f59d8c1ea8e in mysql_close () from target:/usr/lib/x86_64-linux-gnu/libmariadbclient.so.18 #6 0x00007f59d91801fe in ?? () from target:/usr/lib/dovecot/modules/auth/libdriver_mysql.so #7 0x0000564220be2a14 in ?? () #8 0x0000564220bd88f1 in db_sql_unref () #9 0x0000564220bcd92e in passdb_deinit () #10 0x0000564220bb7099 in auths_deinit () #11 0x0000564220bb5e0c in main () I would expect not to have such crashes during the operation of the auth module. My sql auth configuration is as follows: driver = mysql connect = host=127.0.0.1 dbname=maildb user=mail password=<removed> default_pass_scheme = CRYPT password_query = SELECT email AS user, newcrypt AS password FROM passwd WHERE email = '%u' iterate_query = SELECT email AS user FROM passwd The table schema for the passwd table is: DESCRIBE passwd email char(128) NO PRI newcrypt char(128) NO name char(128) NO uid int(10) unsigned NO 8 gid int(10) unsigned NO 8 home char(255) NO maildir char(255) NO quota char(255) NO -- Package-specific info: dovecot configuration --------------------- # 2.3.4 (0ecbaf23d): /etc/dovecot/dovecot.conf # Pigeonhole version 0.5.4 () # OS: Linux 4.19.0-1-amd64 x86_64 Debian buster/sid ext4 # Hostname: mail.drwebdesign.de protocol lmtp { mail_plugins = fts fts_solr sieve } protocol imap { mail_max_userip_connections = 100 } -- System Information: Debian Release: buster/sid APT prefers unstable APT policy: (500, 'unstable') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 4.19.0-1-amd64 (SMP w/8 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to en_US.UTF-8), LANGUAGE=en_US.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to en_US.UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled Versions of packages dovecot-mysql depends on: ii dovecot-core 1:2.3.4-2 ii libc6 2.28-3 ii libmariadbclient18 [libmariadbclient18] 1:10.3.11-3 ii zlib1g 1:1.2.11.dfsg-1 dovecot-mysql recommends no packages. dovecot-mysql suggests no packages. Versions of packages dovecot-mysql is related to: ii dovecot-core [dovecot-common] 1:2.3.4-2 ii dovecot-dev 1:2.3.4-2 ii dovecot-gssapi 1:2.3.4-2 ii dovecot-imapd 1:2.3.4-2 ii dovecot-ldap 1:2.3.4-2 ii dovecot-lmtpd 1:2.3.4-2 pn dovecot-managesieved <none> ii dovecot-mysql 1:2.3.4-2 ii dovecot-pgsql 1:2.3.4-2 pn dovecot-pop3d <none> ii dovecot-sieve 1:2.3.4-2 ii dovecot-sqlite 1:2.3.4-2 -- no debconf information