-
Bug
-
Resolution: Done-Errata
-
Major
-
CentOS Stream 10, rhel-10.0
-
None
-
cyrus-sasl-2.1.28-29.el10
-
Yes
-
Important
-
1
-
rhel-idm-ipa
-
2
-
None
-
Iteration 2
-
x86_64
-
None
After upgrading to cyrus-sasl-lib version 2.1.28-27.el10, the sasldb authentication mechanism fails to work correctly. The sasldb tries to create the database file named %{gdbm_db_file} instead of using the actual expected database file path.
This appears to be a build-time macro substitution error — the macro %{gdbm_db_file} was not replaced with the correct file path during the build, causing sasldb to attempt to create a file literally named %{gdbm_db_file} rather than the intended DB file.
Steps to reproduce:
- Install or upgrade to cyrus-sasl-lib-2.1.28-27.el10.
- Attempt to authenticate using the sasldb mechanism.
- Observe the creation of a database file named %{gdbm_db_file} (or sasldb failing due to invalid DB path).
Expected behavior:
sasldb should create and use the correct database file for storing authentication credentials.
Actual behavior:
sasldb tries to create a database file literally named %{gdbm_db_file}{}, indicating a build macro substitution failure.
Impact:
Authentication relying on the sasldb mechanism is broken, potentially causing service outages or failed logins where sasldb is used.
Environment:
- OS: AlmaLinux 10)
- Package version: cyrus-sasl-lib-2.1.28-27.el10
- Logs
[root@smtp ~]# strace -e trace=open,openat /usr/sbin/saslauthd -a sasldb -V -r -d -m /run/saslauthd
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib64/libkrb5.so.3", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib64/libpam.so.0", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib64/libldap.so.2", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib64/liblber.so.2", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib64/libcrypto.so.3", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib64/libgdbm.so.6", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib64/libcrypt.so.2", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib64/libk5crypto.so.3", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib64/libcom_err.so.2", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib64/libkrb5support.so.0", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib64/libkeyutils.so.1", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib64/libresolv.so.2", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib64/libaudit.so.1", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib64/libeconf.so.0", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib64/libm.so.6", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib64/libevent-2.1.so.7", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib64/libsasl2.so.3", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib64/libssl.so.3", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib64/libz.so.1", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib64/libselinux.so.1", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib64/libcap-ng.so.0", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib64/libpcre2-8.so.0", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/proc/sys/kernel/cap_last_cap", O_RDONLY) = 3
saslauthd[26465] :num_procs : 5
openat(AT_FDCWD, "/etc/localtime", O_RDONLY|O_CLOEXEC) = 4
saslauthd[26465] :mech_option: NULL
saslauthd[26465] :run_path : /run/saslauthd
saslauthd[26465] :auth_mech : sasldb
openat(AT_FDCWD, "/run/saslauthd/saslauthd.pid.lock", O_RDWR|O_CREAT|O_TRUNC, 0644) = 4
openat(AT_FDCWD, "/run/saslauthd/mux.accept", O_RDWR|O_CREAT|O_TRUNC, 0600) = 7
saslauthd[26465] :using accept lock file: /run/saslauthd/mux.accept
saslauthd[26465] :master pid is: 0
saslauthd[26465] :listening on socket: /run/saslauthd/mux
saslauthd[26465] :using process model
saslauthd[26466] :acquired accept lock
saslauthd[26465] :forked child: 26466
saslauthd[26465] :forked child: 26467
saslauthd[26465] :forked child: 26468
saslauthd[26465] :forked child: 26469
saslauthd[26466] :released accept lock
saslauthd[26467] :acquired accept lock
openat(AT_FDCWD, "%{gdbm_db_file}", O_RDONLY) = -1 ENOENT (No such file or directory)
saslauthd[26465] :auth failure: [user=evil] [service=smtp] [realm=] [mech=sasldb] [reason=Unknown]
saslauthd[26465] :response: NO
- links to
-
RHBA-2025:149458
cyrus-sasl bug fix and enhancement update