Package: dovecot-sieve
Version: 1:2.4.5+dfsg1-4
Severity: important

There is still a serious bug in dovecot 2.4.4 with the ssl_key_file.
If e.g. sievec is invoked.

→ doveconf: Fatal: Error in configuration file /etc/dovecot/conf.d/10-ssl.conf
line 76: key_file: open(/etc/ssl/private/XXXXXX.key.pem) failed: Permission
denied

The same occurs in for every mail deliverd to any user account using mailsieve
and a lot of error mails are produced degrading the mail-service for the users.

The problem is upstream discussed in
https://dovecot.org/mailman3/archives/list/[email protected]/thread/KT7LWWQWEMLKKLKXICBGPG7OGOQIJWEV/
There is also a weird configuration hack mentioned to mitigate the dovecot bug.
The bug is that the key_file isn't read before the privileges are dropped e.g.
for the sieve processing.

This bug was solved in dovecot 2.4.5.

I mitigated the problem here with a no-change forky backport for the moment.

Please upgrade the trixie version from 2.4.4 to 2.4.5 to solve the problem for
other users.







-- Package-specific info:

dovecot configuration
---------------------
# 2.4.5 (0cbb641e3e): /etc/dovecot/dovecot.conf
# Pigeonhole version 2.4.5 (742bb892)
# OS: Linux 7.2.6+deb13-amd64 x86_64 Debian 13.7 
# Hostname: nermal.server.computer42.org
# 37 default setting changes since version 2.4.0
dovecot_config_version = 2.4.0
auth_cache_negative_ttl = 6 hour
auth_cache_size = 10M
auth_debug = yes
auth_username_format = %{user|username|lower}
default_vsz_limit = 512M
dovecot_storage_version = 2.4.0
fts_autoindex = yes
fts_autoindex_max_recent_msgs = 999
fts_search_add_missing = yes
imap_capability {
  SPECIAL-USE = yes
}
imap_client_workarounds {
  tb-extra-mailbox-sep = yes
}
imap_hibernate_timeout = 30s
imap_literal_minus = yes
lda_mailbox_autocreate = yes
lda_mailbox_autosubscribe = yes
lda_original_recipient_header = X-Original-To
ldap_auth_dn = cn=admin,dc=computer42,dc=org
ldap_auth_dn_password = # hidden, use -P to show it
ldap_base = ou=People,dc=computer42,dc=org
ldap_uris = ldapi:///
mail_access_groups = mailuser
mail_control_path = ~/mail/control
mail_driver = mbox
mail_home = /srv/mail-c42/%{user | username}
mail_index_path = ~/mail/index
mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename 
flag_change append
mail_log_fields = uid box msgid size from subject vsize flags
mail_log_prefix = %{service}(%{user}):
mail_path = ~/mail/mailboxes
mail_plugins {
  notify = yes
  mail_log = yes
}
mail_privileged_group = mail
mailbox_directory_name = mailboxData
protocols {
  imap = yes
  lmtp = yes
  sieve = yes
}
sieve_extensions {
  fileinto = yes
  reject = yes
  envelope = yes
  encoded-character = yes
  vacation = yes
  subaddress = yes
  comparator-i;ascii-numeric = yes
  relational = yes
  regex = yes
  imap4flags = yes
  copy = yes
  include = yes
  body = yes
  variables = yes
  enotify = yes
  environment = yes
  mailbox = yes
  date = yes
  index = yes
  ihave = yes
  duplicate = yes
  mime = yes
  foreverypart = yes
  extracttext = yes
  editheader = yes
}
verbose_proctitle = yes
passdb ldap {
  driver = ldap
  fields {
    password = %{ldap:userPassword}
    user = %{ldap:uid}
    userdb_gid = %{ldap:gidNumber}
    userdb_home = /srv/mail-c42/%{ldap:uid}
    userdb_uid = %{ldap:uidNumber}
  }
  filter = (&(objectClass=posixAccount)(uid=%{user}))
}
userdb prefetch {
  driver = prefetch
}
userdb ldap {
  driver = ldap
  fields {
    gid = mailuser
    uid = %{ldap:uidNumber}
    user = %{ldap:uid}
    gid = %{ldap:gidNumber}
    home = /srv/mail-c42/%{ldap:uid}
    uid = %{ldap:uidNumber}
  }
  filter = (&(objectClass=posixAccount)(uid=%{user}))
  iterate_fields {
    user = %{ldap:uid}
  }
  iterate_filter = (objectClass=posixAccount)
}
passdb passwd-file {
  auth_username_format = %{user|username}
  default_password_scheme = SHA512-CRYPT
  driver = passwd-file
  passwd_file_path = /etc/dovecot/auth.d/%{user|domain}.passwd
}
userdb passwd-file {
  auth_username_format = %{user|username}
  passwd_file_path = /etc/dovecot/auth.d/%{user|domain}.passwd
  driver = passwd-file
  fields {
    gid = vmail
    home = /srv/vmail/%{user|domain}/%{user|username}
    uid = vmail
  }
}
namespace inbox {
  inbox = yes
  mailbox Drafts {
    auto = subscribe
    special_use = "\\Drafts"
  }
  mailbox Junk {
    auto = subscribe
    autoexpunge = 30d
    special_use = "\\Junk"
  }
  mailbox Trash {
    auto = subscribe
    autoexpunge = 30d
    special_use = "\\Trash"
  }
  mailbox Archive {
    auto = subscribe
    special_use = "\\Archive"
  }
  mailbox Templates {
    auto = subscribe
  }
  mailbox Sent {
    auto = subscribe
    special_use = "\\Sent"
  }
}
service imap-login {
  process_min_avail = 4
  restart_request_count = 100
  vsz_limit = 512M
  inet_listener imap {
  }
  inet_listener imaps {
  }
}
service pop3-login {
  inet_listener pop3 {
  }
  inet_listener pop3s {
  }
}
service submission-login {
  inet_listener submission {
  }
  inet_listener submissions {
  }
}
service lmtp {
  client_limit = 1
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    group = postfix
    mode = 0660
    user = postfix
  }
  inet_listener lmtp {
    port = 42024
    listen = nermal.server.computer42.org nermal.dmz.computer42.org
  }
}
service imap {
  extra_groups = $SET:default_internal_group
  process_limit = 512
  vsz_limit = 2G
  unix_listener imap-master {
    user = $SET:default_internal_user
  }
}
service pop3 {
}
service submission {
}
service auth {
  unix_listener auth-userdb {
  }
  unix_listener /var/spool/postfix/private/auth {
    group = postfix
    mode = 0666
    user = postfix
  }
  inet_listener auth {
    port = 42659
  }
}
service auth-worker {
}
service dict {
  unix_listener dict {
  }
}
ssl_server {
  ca_file = /etc/ssl/certs/c42-srv-ca.crt
  cert_file = /etc/ssl/c42/c42-client.cert.pem
  dh_file = /etc/dovecot/dh.pem
  key_file = # hidden, use -P to show it
}
protocol lda {
  mail_plugins {
    sieve = yes
  }
}
service imap-hibernate {
  unix_listener imap-hibernate {
    group = $SET:default_internal_group
    mode = 0660
  }
}
protocol imap {
  mail_max_userip_connections = 35
}
protocol lmtp {
  mail_plugins {
    sieve = yes
  }
}
service managesieve-login {
  inet_listener sieve {
    port = 4190
  }
  inet_listener sieve_deprecated {
    port = 2000
  }
}
service managesieve {
}
sieve_script personal {
  driver = file
  path = ~/sieve
}
sieve_script default {
  driver = file
  path = /etc/c42CfgRepos/roles/mail_schiller/data/dovecot/default.sieve
  type = default
}
sieve_script global {
  driver = file
  path = /etc/c42CfgRepos/roles/mail_schiller/data/dovecot/sieve_global_dir
  type = global
}
sieve_editheader_header X-Verified {
  forbid_add = yes
  forbid_delete = yes
}
sieve_editheader_header X-Seen {
  forbid_delete = yes
}

-- System Information:
Debian Release: 13.7
  APT prefers stable-updates
  APT policy: (600, 'stable-updates'), (600, 'stable-security'), (600, 
'stable'), (500, 'oldstable-updates'), (500, 'oldstable-security'), (200, 
'testing'), (99, 'oldstable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 7.2.6+deb13-amd64 (SMP w/4 CPU threads; PREEMPT)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8), 
LANGUAGE=de_DE:de:en_US:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages dovecot-sieve depends on:
ii  dovecot-core  1:2.4.5+dfsg1-4
ii  libc6         2.41-12+deb13u4
ii  libldap2      2.6.10+dfsg-1
ii  ucf           3.0052

dovecot-sieve recommends no packages.

dovecot-sieve suggests no packages.

Versions of packages dovecot-sieve is related to:
pn  dovecot-auth-lua               <none>
ii  dovecot-core [dovecot-common]  1:2.4.5+dfsg1-4
ii  dovecot-dev                    1:2.4.5+dfsg1-4-c42-bpo-1
pn  dovecot-flatcurve              <none>
pn  dovecot-gssapi                 <none>
ii  dovecot-imapd                  1:2.4.5+dfsg1-4
ii  dovecot-ldap                   1:2.4.5+dfsg1-4
ii  dovecot-lmtpd                  1:2.4.5+dfsg1-4
ii  dovecot-managesieved           1:2.4.5+dfsg1-4
pn  dovecot-mysql                  <none>
pn  dovecot-pgsql                  <none>
pn  dovecot-pop3d                  <none>
ii  dovecot-sieve                  1:2.4.5+dfsg1-4
pn  dovecot-solr                   <none>
pn  dovecot-sqlite                 <none>
pn  dovecot-submissiond            <none>

-- no debconf information

Reply via email to