#1151187 dovecot-sieve: undefined reference to mail_deliver_ctx_get_log_var_expand_table breaks sieve plugin in IMAP service

Package:
dovecot-sieve
Source:
dovecot-sieve
Description:
secure POP3/IMAP server - Sieve filters support
Submitter:
Ger
Date:
2026-10-18 02:53:01 UTC
Severity:
normal
Tags:
#1151187#5
Date:
2026-10-17 21:56:47 UTC
From:
To:
libdovecot-sieve.so.0 in the Debian build contains an undefined reference to
mail_deliver_ctx_get_log_var_expand_table, which is defined in
/usr/lib/dovecot/libdovecot-lda.so.0, but the sieve library is not linked
against libdovecot-lda. In Dovecot 2.4 each service is a separate binary
(e.g. /usr/lib/dovecot/imap) that does not link libdovecot-lda, so dlopen()
of the pigeonhole sieve plugin from the IMAP service fails with:

  undefined symbol: mail_deliver_ctx_get_log_var_expand_table

This breaks any IMAP-context use of libdovecot-sieve, e.g. the sieve-imapsieve
event hook used for antispam training on mailbox COPY events. The symbol only
resolves in binaries that already have libdovecot-lda loaded, so the delivery
side (lda/lmtp) works while IMAP event handling does not.

Verification on this system:
  nm -D -u /usr/lib/dovecot/libdovecot-sieve.so.0.0.0 | grep log_var_expand
  -> U mail_deliver_ctx_get_log_var_expand_table
  readelf -d shows only libc.so.6 as NEEDED for the sieve library.

Workaround in use locally: LD_PRELOAD of libdovecot-lda.so.0 applied at
service exec via a wrapper script (a systemd Environment= drop-in alone is
insufficient because the Dovecot master sanitizes the environment before
exec'ing service binaries).

#1151187#10
Date:
2026-10-18 02:33:41 UTC
From:
To:
It's defined in libdovecot-lda:
root@c9c251285d2c:/# nm -D -U /usr/lib/dovecot/libdovecot-lda.so.0 | grep log_var_expand
00000000000076a0 T mail_deliver_ctx_get_log_var_expand_table

But I don't see a reference to it in libdovecot-sieve.so:
root@c9c251285d2c:/# nm -D -u /usr/lib/dovecot/libdovecot-sieve.so.0.0.0 | grep log_var_expand | wc -l
0
root@c9c251285d2c:/# nm -D -u /usr/lib/dovecot/libdovecot-sieve.so.0.0.0 | wc -l
458

root@c9c251285d2c:/# dpkg -S libdovecot-sieve.so.0.0.0
dovecot-sieve: /usr/lib/dovecot/libdovecot-sieve.so.0.0.0
root@c9c251285d2c:/# apt policy dovecot-sieve
dovecot-sieve:
  Installed: 1:2.4.1+dfsg1-6+deb13u7
  Candidate: 1:2.4.1+dfsg1-6+deb13u7
  Version table:
 *** 1:2.4.1+dfsg1-6+deb13u7 500
        500 http://deb.debian.org/debian-security trixie-security/main amd64 Packages
        100 /var/lib/dpkg/status
     1:2.4.1+dfsg1-6+deb13u6 500
        500 http://deb.debian.org/debian trixie/main amd64 Packages


What architecture are you using?

noah