Bug#1140099: exim4-daemon-heavy: regression in 4.98.2-1+deb13u3 - bare filename in router domains condition no longer treated as implicit lsearch

Terry Roy tech at futurecourse.com
Mon Jun 15 19:24:37 BST 2026


Package: exim4-daemon-heavy
Version: 4.98.2-1+deb13u3
Severity: important

Dear Maintainer,

The security update to exim4 4.98.2-1+deb13u3 (trixie-security, installed
2026-06-15) introduced a regression in virtual alias routing for sites using
a bare filename in the `domains` condition of Exim routers.

** Symptoms

Virtual alias addresses are rejected with:

  550 5.1.1 Bad destination mailbox address

`exim4 -d -bt user at domain` shows the virtual_aliases router being skipped
with "domains mismatch" despite the domain being present in the domains file.

** Configuration

The virtual_aliases router had:

  domains = VIRTDIR/domains

where VIRTDIR expands to /etc/exim4/virtual. This configuration worked
correctly under all previous versions of exim4 in trixie.

** Root cause

In 4.98.2-1+deb13u3, a bare filename in a domains list is no longer treated
as an implicit lsearch. The string is matched literally, so no domain ever
matches. The debug trace confirms this:

  cfsg.net in domains?
   list element: /etc/exim4/virtual/domains
  cfsg.net in domains? no (end of list)
  virtual_aliases router skipped: domains mismatch

Note that the domainlist declaration for local_domains in the same config
uses the explicit prefix and was unaffected:

  domainlist local_domains = @ : localhost : lsearch;/etc/exim4/virtual/domains

** Workaround

Adding the explicit lsearch; prefix to the router domains condition restores
correct behavior:

  domains = lsearch;VIRTDIR/domains

** Impact

Any site using a bare filename (without explicit lookup type prefix) in a
router domains condition will silently lose routing for those domains after
this update. Virtual alias setups following the pattern documented in the
Exim4 Debian split configuration examples are likely affected.

** Reproducibility

Confirmed on Debian trixie, exim4-daemon-heavy 4.98.2-1+deb13u3,
monolithic config. Routing worked correctly prior to this update with the
same configuration.

Regards,
Terry Roy

File it with:

-- Package-specific info:
Exim version 4.98.2 #2 built 27-May-2026 16:58:40
Copyright (c) University of Cambridge, 1995 - 2018
(c) The Exim Maintainers and contributors in ACKNOWLEDGMENTS file, 2007 - 2024
Hints DB:
 Berkeley DB: Berkeley DB 5.3.28: (September  9, 2013)
Support for: Content_Scanning crypteq Expand_dlfunc iconv() IPv6 PAM Perl GnuTLS move_frozen_messages TLS_resume DANE DKIM DNSSEC ESMTP_Limits ESMTP_Wellknown Event I18N OCSP PIPECONNECT PRDR PROXY Queue_Ramp SOCKS SPF SRS TCP_Fast_Open
Lookups (built-in): lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmjz dbmnz dnsdb dsearch ldap ldapdn ldapm mysql nis nis0 passwd pgsql sqlite
Authenticators: cram_md5 cyrus_sasl dovecot external plaintext spa tls
Routers: accept dnslookup ipliteral iplookup manualroute queryprogram redirect
Transports: appendfile/maildir/mailstore/mbx autoreply lmtp pipe smtp
Malware: f-protd f-prot6d drweb fsecure sophie clamd avast sock cmdline
Fixed never_users: 0
Configure owner: 0:0
Size of off_t: 8
Configuration file search path is /etc/exim4/exim4.conf:/var/lib/exim4/config.autogenerated
Configuration file is /etc/exim4/exim4.conf
# /etc/exim4/update-exim4.conf.conf
#
# Edit this file and /etc/mailname by hand and execute update-exim4.conf
# yourself or use 'dpkg-reconfigure exim4-config'
#
# Please note that this is _not_ a dpkg-conffile and that automatic changes
# to this file might happen. The code handling this will honor your local
# changes, so this is usually fine, but will break local schemes that mess
# around with multiple versions of the file.
#
# update-exim4.conf uses this file to determine variable values to generate
# exim configuration macros for the configuration file.
#
# Most settings found in here do have corresponding questions in the
# Debconf configuration, but not all of them.
#
# This is a Debian specific file

dc_eximconfig_configtype='local'
dc_other_hostnames='localhost'
dc_local_interfaces='127.0.0.1 ; ::1'
dc_readhost=''
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets=''
dc_smarthost=''
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname=''
dc_mailname_in_oh='true'
dc_localdelivery='mail_spool'
mailname:localhost
# /etc/default/exim4
EX4DEF_VERSION=''

# 'combined' -	 one daemon running queue and listening on SMTP port
# 'no'       -	 no daemon running the queue
# 'separate' -	 two separate daemons
# 'ppp'      -   only run queue with /etc/ppp/ip-up.d/exim4.
# 'nodaemon' - no daemon is started at all.
# 'queueonly' - only a queue running daemon is started, no SMTP listener.
# setting this to 'no' will also disable queueruns from /etc/ppp/ip-up.d/exim4
QUEUERUNNER='combined'
# how often should we run the queue
QUEUEINTERVAL='30m'
# options common to quez-runner and listening daemon
COMMONOPTIONS=''
# more options for the daemon/process running the queue (applies to the one
# started in /etc/ppp/ip-up.d/exim4, too.
QUEUERUNNEROPTIONS=''
# special flags given to exim directly after the -q. See exim(8)
QFLAGS=''
# Options for the SMTP listener daemon. By default, it is listening on
# port 25 only. To listen on more ports, it is recommended to use
# -oX 25:587:10025 -oP /run/exim4/exim.pid
#SMTPLISTENEROPTIONS=''
SMTPLISTENEROPTIONS='-oX 25:465 -oP /var/run/exim4/exim.pid'
# for debugging
#SMTPLISTENEROPTIONS='-d+transports -oX 25:465 -oP /var/run/exim4/exim.pid'
#SMTPLISTENEROPTIONS='-d+auth -oX 25:465 -oP /var/run/exim4/exim.pid'

-- System Information:
Debian Release: 13.5
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 6.12.90+deb13.1-amd64 (SMP w/2 CPU threads; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages exim4-daemon-heavy depends on:
ii  debconf [debconf-2.0]  1.5.91
ii  exim4-base             4.98.2-1+deb13u3
ii  libc6                  2.41-12+deb13u3
ii  libcrypt1              1:4.4.38-1
ii  libdb5.3t64            5.3.28+dfsg2-9
ii  libgnutls-dane0t64     3.8.9-3+deb13u4
ii  libgnutls30t64         3.8.9-3+deb13u4
ii  libidn12               1.43-1
ii  libidn2-0              2.3.8-2
ii  libldap2               2.6.10+dfsg-1
ii  libmariadb3            1:11.8.6-0+deb13u1
ii  libnsl2                1.3.0-3+b3
ii  libpam0g               1.7.0-5
ii  libpcre2-8-0           10.46-1~deb13u1
ii  libperl5.40            5.40.1-6
ii  libpq5                 17.10-0+deb13u1
ii  libsasl2-2             2.1.28+dfsg1-9
ii  libspf2-2t64           1.2.10-8.3
ii  libsqlite3-0           3.46.1-7+deb13u1

exim4-daemon-heavy recommends no packages.

exim4-daemon-heavy suggests no packages.

-- debconf information:
  exim4-daemon-heavy/drec:



More information about the Pkg-exim4-maintainers mailing list