CVE and update status of the FreeBSD ports tree4,526 unaddressed CVEs in 616 portsAll times are CET

Port details

mail/dovecot2.3.21.1_3

Secure, fast and powerful IMAP and POP3 server

Maintainer
ler@FreeBSD.org
Packages
dovecot 2.3.21.1_3, dovecot-mysql 2.3.21.1_3, dovecot-pgsql 2.3.21.1_3
Upstream
up to date
CPE
dovecot:dovecot from the port
WWW
https://www.dovecot.org/
Links
cgit · VuXML

Unaddressed (16) · The CVE record lists this version as affected, no VuXML entry names the CVE

Updating to 2.4.4 would fix 16 of 16 unaddressed CVEs, according to the CVE records.
Fixed up to each version, cumulative: 2.4.0 1 · 2.4.3 11 · 2.4.4 16
CVE-2026-240317.72026-03-27Dovecot SQL based authentication can be bypassed when auth_username_chars is cleared by admin. This vulnerability allows bypassing authentication for any user and user e…
CVE-2026-278587.52026-03-27Attacker can send a specifically crafted message before authentication that causes managesieve to allocate large amount of memory. Attacker can force managesieve-login…
CVE-2025-590327.52026-03-27ManageSieve AUTHENTICATE command crashes when using literal as SASL initial response. This can be used to crash ManageSieve service repeatedly, making it unavailable for…
CVE-2026-278517.42026-05-12When safe filter is used with variable expansion, all following pipelines on the same string are incorrectly interpreted as safe too, enabling unsafe data to be unescape…
CVE-2026-278567.42026-03-27Doveadm credentials are verified using direct comparison which is susceptible to timing oracle attack. An attacker can use this to determine the configured credentials. …
CVE-2026-336036.82026-05-12Attacker can use a specially crafted base64 exchange between Dovecot and Client to fake SCRAM TLS channel binding. This requires that the attacker is able to position it…
CVE-2026-278556.82026-03-27Dovecot OTP authentication is vulnerable to replay attack under specific conditions. If auth cache is enabled, and username is altered in passdb, then OTP credentials ca…
CVE-2026-400165.32026-05-12Attacker can upload a malicious Sieve script over ManageSieve service (or locally) to bypass configured CPU time limits for Sieve up to 130 times of the configured limit…
CVE-2026-278595.32026-03-27A mail message containing excessive amount of RFC 2231 MIME parameters causes LMTP to use too much CPU. A suitably formatted mail message causes mail delivery process to…
CVE-2026-03945.32026-03-27When dovecot has been configured to use per-domain passwd files, and they are placed one path component above /etc, or slash has been added to allowed characters, path t…
CVE-2025-590285.32026-03-27When sending invalid base64 SASL data, login process is disconnected from the auth server, causing all active authentication sessions to fail. Invalid BASE64 data can be…
CVE-2026-420064.32026-05-12An attacker can cause uncontrolled memory usage with excessive bracing over IMAP. The fix in CVE-2026-27857 was incomplete, only blocking one way of doing this, so there…
CVE-2026-278574.32026-03-27Sending "NOOP (((...)))" command with 4000 parenthesis open+close results in ~1MB extra memory usage. Longer commands will result in client disconnection. This 1 MB can …
CVE-2025-590314.32026-03-27Dovecot has provided a script to use for attachment to text conversion. This script unsafely handles zip-style attachments. Attacker can use specially crafted OOXML docu…
CVE-2026-278603.72026-03-27If auth_username_chars is empty, it is possible to inject arbitrary LDAP filter to Dovecot's LDAP authentication. This leads to potentially bypassing restrictions and al…
CVE-2026-400203.12026-05-12Attacker can use the IMAP SETACL command to inject the anyone permission to user's dovecot-acl file even if imap_acl_allow_anyone=no. This causes folders to be spammed t…

VuXML only (0) · listed, port not fixed yet

None. pkg audit reports nothing for this version.

Possibly backported (1) · The CVE record gives a range ending in a newer branch, check the branch changelog

This port tracks an older, still maintained branch. The CVE record only says “before X” with X in a newer branch, so it cannot tell whether this branch received the fix. This is an estimate, not a confirmation. These CVEs are not counted as unaddressed.
CVE-2022-305508.82022-07-17An issue was discovered in the auth component in Dovecot 2.2 and 2.3 before 2.3.20. When two passdb configuration entries exist with the same driver and args settings, i…

Fixed (19)

Show 19 fixed
VuXML entries whose affected range this version has left.

Commits (284)

Loïc Bartoletti (lbartoletti) · 2.3.21.1_3
graphics/poppler: bump dependent ports
78c4bd4996
Vladimir Druzenko (vvd) · 2.3.21.1_2
mail/dovecot: Fix build with option ICU (full text search plugin) after update icu to 76.1

ld: error: undefined symbol: u_strFromUTF8Lenient
>>> referenced by fts-icu.c
>>>               .libs/fts-icu.o:(fts_icu_utf8_to_utf16)
>>> referenced by fts-icu.c
>>>               .libs/fts-icu.o:(fts_icu_utf8_to_utf16)

ld: error: undefined symbol: u_errorName
>>> referenced by fts-icu.c
>>>               .libs/fts-icu.o:(fts_icu_utf8_to_utf16)
>>> referenced by fts-icu.c
>>>               .libs/fts-icu.o:(fts_icu_utf16_to_utf8)
>>> referenced by fts-icu.c
>>>               .libs/fts-icu.o:(fts_icu_translate)
>>> referenced 3 more times

PR:		284832
Approved by:	ler (maintainer, implicit)
8d5f66f0fa
Larry Rosenman (ler) · 2.3.21.1_2
mail/dovecot: update upgrading URL

PR: 284280
9f71502f5d
Larry Rosenman (ler) · 2.3.21.1_1
mail/dovecot: add mysql & pgsql flavors

Add database flavors for dovecot
d4e949bafd
Larry Rosenman (ler) · 2.3.21.1_1
mail/dovecot: add patch from upstream to silence "time moved forwards"

Patch from Timo Sirainen (via dovecot list)

PR:	280929
Reported by: trashcan@ellael.org
eae4d9b606
Larry Rosenman (ler) · 2.3.21.1
mail/dovecot: pet portclippy

PR: 	280866
Reported by:	vvd
3df350526a
Vladimir Druzenko (vvd) · 2.3.21.1
mail/dovecot: update 2.3.21 → 2.3.21.1 (fixes 2 CVEs)

- CVE-2024-23184: A large number of address headers in email resulted
  in excessive CPU usage.
- CVE-2024-23185: Abnormally large email headers are now truncated or
  discarded, with a limit of 10MB on a single header and 50MB for all
  the headers of all the parts of an email.
- oauth2: Dovecot would send client_id and client_secret as POST parameters
  to introspection server. These need to be optionally in Basic auth
  instead as required by OIDC specification.
- oauth2: JWT key type check was too strict.
- oauth2: JWT token audience was not validated against client_id as
  required by OIDC specification.
- oauth2: XOAUTH2 and OAUTHBEARER mechanisms were not giving out
  protocol specific error message on all errors. This broke OIDC discovery.
- oauth2: JWT aud validation was not performed if aud was missing
  from token, but was configured on Dovecot.
https://dovecot.org/mailman3/hyperkitty/list/dovecot-news@dovecot.org/thread/2CSVL56LFPAXVLWMGXEIWZL736PSYHP5/

PR:		280866
Approved by:	ler (maintainer)
MFH:		2024Q3
72dd8d2ee6
Larry Rosenman (ler) · 2.3.21_6
mail/dovecot: remove extra call to doveconf in rc.d script

PR:	279867
Reported by: Siva Mahadevan <me@svmhdvn.name>
e39e03c9e7
Alexander Leidinger (netchild) · 2.3.21_5
mail/dovecot: make the rc script service jails aware

PR:		279670
Approved by:	maintainer
8838c981bd
Yasuhiro Kimura (yasu) · 2.3.21_4
mail/dovecot: Move manpages to share/man

PR:		277401
Approved by:	portmgr (blanket)
2cb697ec07
Tobias C. Berner (tcberner) · 2.3.21_4
graphics/poppler: bump consumers of graphics/poppler

Bump after rupdate in 478df79a3071b399f648107456cf371587e84a3f
d2f834ba51
Larry Rosenman (ler) · 2.3.21_3
mail/dovecot: add LDAP as a default option

PR:	276741
Requested by: seichan-ml@wakhok.ne.jp
94eda313a9
Tobias C. Berner (tcberner) · 2.3.21_2
graphics/poppler: bump revision of consumers
672f0463c7
Jan Beich (jbeich) · 2.3.21_1
devel/icu: update to 74.1

Changes:	https://github.com/unicode-org/icu/releases/tag/release-74-1
Reported by:	GitHub (watch releases)
PR:		274317
Exp-run by:	antoine (incomplete)
Approved by:	fluffy
e55b80195e
Yasuhiro Kimura (yasu) · 2.3.21
mail/{dovecot,dovecot-pigeonhole}: Update to latest stable releases

* Update mail/dovecot to 2.3.21.
* Update mail/dovecot-pigeonhole to 0.5.21.
* Bump PORTREVISION of dependencies.

ReleaseNotes:	https://dovecot.org/mailman3/archives/list/dovecot-news@dovecot.org/thread/Y5SJWAIAVEAQ2KKSWJM7VSJUUFRMFAH5/
PR:		273946
Approved by:	maintainer timeout
7a228334ac
Robert Clausecker (fuz) · 2.3.20_1
mail/dovecot: add mail/dovecot-xaps to portrevision bump list

PR:		270566
Approved by:	ler (maintainer timeout)
bd3cf94814
Jan Beich (jbeich) · 2.3.20_1
devel/icu: update to 73.1

- Temporarily switch to GitHub auto archive (release artifacts are N/A atm)

Changes:	https://github.com/unicode-org/icu/releases/tag/release-73-1
Reported by:	GitHub (watch releases)
PR:		270422
Exp-run by:	antoine
f1f1a8be88
Muhammad Moinur Rahman (bofh) · 2.3.20
Mk/**ldap.mk: Convert USE_LDAP to USES=ldap

Convert the USE_LDAP=yes to USES=ldap and adds the following features:

- Adds the argument USES=ldap:server to add openldap2{4|5|6}-server as
  RUN_DEPENDS
- Adds the argument USES=ldap<version> and replaces WANT_OPENLDAP_VER
- Adds OPENLDAP versions in bsd.default-versions.mk
- Adds USE_OPENLDAP/WANT_OPENLDAP_VER in Mk/bsd.sanity.mk
- Changes consumers to use the features

Reviewed by:	delphij
Approved by:	portmgr
Differential Revision: https://reviews.freebsd.org/D38233
6e1233be22
Larry Rosenman (ler) · 2.3.20
mail/dovecot: fix build

- patch-src_lib_ioloop-notify-kqueue.c: patch already applied.
036685c034
Dimitry Andric (dim) · 2.3.20
mail/dovecot: fix build with clang 15

During an exp-run for llvm 15 (see bug 265425), it turned out that
mail/dovecot failed to build with clang 15:

  ioloop-notify-kqueue.c:70:2: error: call to undeclared function 'i_gettimeofday'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
          i_gettimeofday(&ioloop_timeval);
          ^
  ioloop-notify-kqueue.c:70:2: note: did you mean 'gettimeofday'?
  /usr/include/sys/time.h:617:5: note: 'gettimeofday' declared here
  int     gettimeofday(struct timeval *, struct timezone *);
          ^
  ...
  --- test-mail-index-transaction-update.o ---
  test-mail-index-transaction-update.c:633:14: warning: comparison of function 'timezone' equal to a null pointer is always false [-Wtautological-pointer-compare]
          test_assert(timezone == 0);
                      ^~~~~~~~    ~
  ../../src/lib-test/test-common.h:20:8: note: expanded from macro 'test_assert'
          if (!(code)) test_assert_failed(#code, __FILE__, __LINE__); \
                ^~~~
  test-mail-index-transaction-update.c:633:14: note: prefix with the address-of operator to silence this warning
          test_assert(timezone == 0);
                      ^
                      &
  ../../src/lib-test/test-common.h:20:8: note: expanded from macro 'test_assert'
          if (!(code)) test_assert_failed(#code, __FILE__, __LINE__); \
                ^
  test-mail-index-transaction-update.c:648:42: warning: arithmetic on a pointer to the function type 'char *(int, int)' is a GNU extension [-Wgnu-pointer-arith]
                  hdr.day_stamp = tests[i].old_day_stamp + timezone;
                                                         ^ ~~~~~~~~
  test-mail-index-transaction-update.c:648:17: error: incompatible pointer to integer conversion assigning to 'uint32_t' (aka 'unsigned int') from 'char *(*)(int, int)' [-Wint-conversion]
                  hdr.day_stamp = tests[i].old_day_stamp + timezone;
                                ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  test-mail-index-transaction-update.c:650:49: warning: arithmetic on a pointer to the function type 'char *(int, int)' is a GNU extension [-Wgnu-pointer-arith]
                  mail_index_update_day_headers(t, tests[i].now + timezone);
                                                                ^ ~~~~~~~~
  test-mail-index-transaction-update.c:650:36: error: incompatible pointer to integer conversion passing 'char *(*)(int, int)' to parameter of type 'time_t' (aka 'long') [-Wint-conversion]
                  mail_index_update_day_headers(t, tests[i].now + timezone);
                                                   ^~~~~~~~~~~~~~~~~~~~~~~
  ./mail-index-transaction-private.h:127:77: note: passing argument to parameter 'day_stamp' here
  void mail_index_update_day_headers(struct mail_index_transaction *t, time_t day_stamp);
                                                                              ^
  test-mail-index-transaction-update.c:654:63: warning: arithmetic on a pointer to the function type 'char *(int, int)' is a GNU extension [-Wgnu-pointer-arith]
                  test_assert_idx(new_hdr.day_stamp == tests[i].new_day_stamp + timezone, i);
                                                                              ^ ~~~~~~~~
  ../../src/lib-test/test-common.h:26:9: note: expanded from macro 'test_assert_idx'
                  if (!(code)) test_assert_failed_idx(#code, __FILE__, __LINE__, i); \
                        ^~~~
  test-mail-index-transaction-update.c:654:37: warning: comparison between pointer and integer ('uint32_t' (aka 'unsigned int') and 'char *(*)(int, int)') [-Wpointer-integer-compare]
                  test_assert_idx(new_hdr.day_stamp == tests[i].new_day_stamp + timezone, i);
                                  ~~~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  ../../src/lib-test/test-common.h:26:9: note: expanded from macro 'test_assert_idx'
                  if (!(code)) test_assert_failed_idx(#code, __FILE__, __LINE__, i); \
                        ^~~~

Fix these warnings and errors by importing:
https://github.com/dovecot/core/commit/e983ead775671186b3c8567d59973d2e52b678c7
https://github.com/dovecot/core/commit/1a7b1f66fe4b86cb642dbcfe5a0192c1b77d0e17
https://github.com/dovecot/core/commit/867a37fa7b74f798a931fb582214b5377f57610e

PR:		268204
Approved by:	maintainer timeout (2 weeks)
MFH:		2022Q4
b43593bdbc
Larry Rosenman (ler) · 2.3.20
mail/dovecot: update to 2.3.20

mail/dovecot-pigeonhole: bump to 0.5.20
mail/dovecot-fts-*, mail/dovecot-coi: bump portrevision

mail/dovecot: ChanggLog:
+ Add dsync_features=no-header-hashes. When this setting is enabled and
  one dsync side doesn't support mail GUIDs (i.e. imapc), there is no
  fallback to using header hashes. Instead, dsync assumes that all mails
  with identical IMAP UIDs contains the same mail contents. This can
  significantly improve dsync performance with some IMAP servers that
  don't support caching Date/Message-ID headers.
+ lua: HTTP client has more settings now, see
  https://doc.dovecot.org/admin_manual/lua/#dovecot.http.client
+ replicator: "doveadm replicator status" command now outputs when the
  next sync is expected for the user.
- LAYOUT=index: duplicate GUIDs were not cleaned out. Also the list
  recovery was not optimal.
- auth: Assert crash would occur when iterating multiple userdb
  backends.
- director: Logging into director using master user with
  auth_master_user_separator character redirected user to a wrong
  backend, unless master_user_separator setting was also set to the same
  value. Merged these into auth_master_user_separator.
- dsync: Couldn't always fix folder GUID conflicts automatically with
  Maildir format. This resulted in replication repeatedly failing
  with "Remote lost mailbox GUID".
- dsync: Failed to migrate INBOX when using namespace prefix=INBOX/,
  resulting in "Remote lost mailbox GUID" errors.
- dsync: INBOX was created too early with namespace prefix=INBOX/,
  resulting a GUID conflict. This may have been resolved automatically,
  but not always.
- dsync: v2.3.18 regression: Wrong imapc password with dsync caused
  Panic: file lib-event.c: line 506 (event_pop_global):
  assertion failed: (event == current_global_event)
- imapc: Requesting STATUS for a mailbox with imapc and INDEXPVT
  configured did not return correct (private) unseen counts.
- lib-dict: Process would crash when committing data to redis without
  dict proxy.
- lib-mail: Corrupted cached BODYSTRUCTURE caused panic during FETCH.
  Fixes: Panic: file message-part-data.c: line 579 (message_part_is_attachment):
  assertion failed: (data != NULL). v2.3.13 regression.
- lib-storage: mail_attribute_dict with dict-sql failed when it tried to
  lookup empty dict keys.
- lib: ioloop-kqueue was missing include breaking some BSD builds.
- lua-http: Dovecot Lua HTTP client could not resolve DNS names in mail
  processes, because it expected "dns-client" socket to exist in the
  current directory.
- oauth2: Using %{oauth2:name} variables could cause useless
  introspections.
- pop3: Sending POP3 command with ':' character caused an assert-crash.
  v2.3.18 regression.
- replicator: Replication queue had various issues, potentially causing
  replication requests to become stuck.
- stats: Invalid Prometheus label names were created with specific

mail/dovecot-pigeonhole: ChangeLog:
* No changes - release done to keep version numbers synced.
61ef5b861c
Jan Beich (jbeich) · 2.3.19.1_1
devel/icu: update to 72.1

Changes:	https://github.com/unicode-org/icu/releases/tag/release-72-1
Reported by:	GitHub (watch releases)
PR:		266582
Exp-run by:	antoine
dfe25d73e7
Larry Rosenman (ler) · 2.3.19.1
mail/dovecot: add mail/dovecot-fts-flatcurve to list

PR: 266911
44f8a8e55b
Stefan Eßer (se) · 2.3.19.1
Remove WWW entries moved into port Makefiles

Commit b7f05445c00f has added WWW entries to port Makefiles based on
WWW: lines in pkg-descr files.

This commit removes the WWW: lines of moved-over URLs from these
pkg-descr files.

Approved by:		portmgr (tcberner)
fb16dfecae
Stefan Eßer (se) · 2.3.19.1
Add WWW entries to port Makefiles

It has been common practice to have one or more URLs at the end of the
ports' pkg-descr files, one per line and prefixed with "WWW:". These
URLs should point at a project website or other relevant resources.

Access to these URLs required processing of the pkg-descr files, and
they have often become stale over time. If more than one such URL was
present in a pkg-descr file, only the first one was tarnsfered into
the port INDEX, but for many ports only the last line did contain the
port specific URL to further information.

There have been several proposals to make a project URL available as
a macro in the ports' Makefiles, over time.

This commit implements such a proposal and moves one of the WWW: entries
of each pkg-descr file into the respective port's Makefile. A heuristic
attempts to identify the most relevant URL in case there is more than
one WWW: entry in some pkg-descr file. URLs that are not moved into the
Makefile are prefixed with "See also:" instead of "WWW:" in the pkg-descr
files in order to preserve them.

There are 1256 ports that had no WWW: entries in pkg-descr files. These
ports will not be touched in this commit.

The portlint port has been adjusted to expect a WWW entry in each port
Makefile, and to flag any remaining "WWW:" lines in pkg-descr files as
deprecated.

Approved by:		portmgr (tcberner)
b7f05445c0
Tobias C. Berner (tcberner) · 2.3.19.1
mail: remove 'Created by' lines

A big Thank You to the original contributors of these ports:

  *  <ashish@FreeBSD.org>
  *  Aaron Dalton <aaron@FreeBSD.org>
  *  Adam David <adam@FreeBSD.org>
  *  Adam McDougall <mcdouga9@egr.msu.edu>
  *  Adam Weinberger <adamw@FreeBSD.org>
  *  Ade Lovett <ade@FreeBSD.org>
  *  Akinori MUSHA aka knu <knu@idaemons.org>
  *  Alex Deiter <tiamat@komi.mts.ru>
  *  Alex Dupre <ale@FreeBSD.org>
  *  Alex Dupre <sysadmin@alexdupre.com>
  *  Alex Perel <veers@disturbed.net>
  *  Alexander Kriventsov <avk@vl.ru>
  *  Alexander Logvinov <info@logvinov.com>
  *  Alexander Moisseev <moiseev@mezonplus.ru>
  *  Alexander Wittig <alexander@wittig.name>
  *  Alexander Zhuravlev <zaa@zaa.pp.ru>
  *  Alexandre Biancalana <ale@biancalanas.net>
  *  Alexey V. Degtyarev
  *  Alexey V. Degtyarev <alexey@renatasystems.org>
  *  Ali Mashtizadeh <ali@mashtizadeh.org>
  *  Anders Nordby <anders@FreeBSD.org>
  *  Anders Nordby <anders@fix.no>
  *  Andrea Venturoli <freebsd@netfence.it>
  *  Andrew J. Caines <A.J.Caines@halplant.com>
  *  Andrew Pantyukhin <infofarmer@FreeBSD.org>
  *  Andrew Stevenson <andrew@ugh.net.au>
  *  Andrey Slusar <anray@FreeBSD.org>
  *  Andrey V. Pevnev <andrey@mgul.ac.ru>
  *  Andrey Zakhvatov
  *  Andy Gilligan
  *  Anthony Kim
  *  Anton Berezin <tobez@FreeBSD.org>
  *  Anton Berezin <tobez@tobez.org>
  *  Anton Karpov <toxa@toxahost.ru>
  *  Anton Lysenok <bart@tapolsky.net.ua>
  *  Anton Yuzhaninov <citrin@rambler-co.ru>
  *  Antonio Carlos Venancio Junior (<antonio@inf.ufsc.br>)
  *  Ashish SHUKLA <ashish@FreeBSD.org>
  *  Attila Nagy <bra@fsn.hu>
  *  Autrijus Tang <autrijus@autrijus.org>
  *  Axel Steiner <ast@treibsand.com>
  *  Ben Smithurst <ben@FreeBSD.org>
  *  Bernard Spil <brnrd@FreeBSD.org>
  *  Bernard Spil <brnrd@freebsd.org>
  *  Bill Brinzer <bill.brinzer@gmail.com>
  *  Cheng-Lung Sung <clsung@FreeBSD.org>
  *  Cheng-Lung Sung <clsung@dragon2.net>
  *  Chifeng QU <chifeng@gmail.com>
  *  Chris D. Faulhaber <jedgar@fxp.org>
  *  Chris Piazza <cpiazza@FreeBSD.org>
  *  Christer Edwards <christer.edwards@gmail.com>
  *  Christian Laursen <xi@borderworlds.dk>
  *  Christopher Elkins <chrise@scardini.com>
  *  Clement Laforet <sheepkiller@cultdeadsheep.org>
  *  Craig Leres <leres@FreeBSD.org>
  *  Cyril Guibourg
  *  CyrilM <cyrilm@tower.pp.ru>
  *  Dan Langille <dvl@FreeBSD.org>
  *  Daniel Roethlisberger <daniel@roe.ch>
  *  Dario Freni <saturnero@gufi.org>
  *  Darren Pilgrim <ports.maintainer@evilphi.com>
  *  DarwinSurvivor <darwinsurvivor@gmail.com>
  *  David Bushong <david+ports@bushong.net>
  *  David O'Brien (obrien@NUXI.com)
  *  David Siebörger <drs@rucus.ru.ac.za>
  *  Dean Hollister <dean@odyssey.apana.org.au>
  *  Dmitry Liakh <dliakh@ukr.net>
  *  Dmitry Sivachenko <demon@FreeBSD.org>
  *  Dominic Marks <dom@wirespeed.org.uk>
  *  Eivind Eklund <eivind@FreeBSD.org>
  *  Emanuel Haupt <ehaupt@FreeBSD.org>
  *  Emanuel Haupt <ehaupt@critical.ch>
  *  Emmanuel Vadot <manu@FreeBSD.org>
  *  Eric Freeman <freebsdports@chillibear.com>
  *  Erwin Lansing <erwin@FreeBSD.org>
  *  Eugene M. Kim <ab@astralblue.net>
  *  Fukang Chen <loader@FreeBSD.org>
  *  Gea-Suan Lin (gslin@ccca.nctu.edu.tw)
  *  Gea-Suan Lin <gslin@gslin.org>
  *  George Reid <greid@ukug.uk.freebsd.org>
  *  Gerhard Gonter <g.gonter@ieee.org>
  *  Gerrit Beine <gerrit.beine@gmx.de>
  *  Giel van Schijndel <me@mortis.eu>
  *  Glen Barber <gjb@FreeBSD.org>
  *  Glenn Johnson <gljohns@bellsouth.net>
  *  Gregory Sutter <gsutter@zer0.org>
  *  Gustau Perez <gustau.perez@gmail.com>
  *  Guy Antony Halse <guy@rucus.ru.za.za>
  *  Hajimu UMEMOTO <ume@FreeBSD.org>
  *  Harry Newton
  *  Hirohisa Yamaguchi <umq@ueo.co.jp>
  *  Hsin-Han You <hhyou@cs.nctu.edu.tw>
  *  Ion-Mihai "IOnut" Tetcu <itetcu@FreeBSD.org>
  *  Issei Suzuki <issei@jp.FreeBSD.org>
  *  J.R. Oldroyd <fbsd@opal.com>
  *  Jaap Akkerhuis <jaap@NLnetLabs.nl>
  *  James FitzGibbon <jfitz@FreeBSD.org>
  *  James Raftery <james@now.ie>
  *  Jan-Peter Koopmann <j.koopmann@seceidos.de>
  *  Janne Snabb <snabb@epipe.com>
  *  Jean Milanez Melo <jmelo@FreeBSD.org>
  *  Jean-Baptiste Quenot <jb.quenot@caraldi.com>
  *  Jeremy Norris <ishmael27@home.com>
  *  Jim Mock <jim@FreeBSD.org>
  *  Jin-Shan Tseng <tjs@cdpa.nsysu.edu.tw>
  *  Joe Marcus Clarke <marcus@FreeBSD.org>
  *  Johann Visagie <wjv@FreeBSD.org>
  *  Johannes Meixner <johannes@perceivon.net>
  *  John Oxley <john@yoafrica.com>
  *  John Prather
  *  Josh Gilliam <josh@quick.net>
  *  Jun-ichiro Hagino <itojun@itojun.org>
  *  Justin Stanford <jus@security.za.net>
  *  KIMURA Yasuhiro <yasu@utahime.org>
  *  Kay Abendroth <kay.abendroth@raxion.net>
  *  Keith Gaughan <k@stereochro.me>
  *  Kelly Yancey <kbyanc@FreeBSD.org>
  *  Kevin Golding <ports@caomhin.org>
  *  Kimura Fuyuki <fuyuki@mj.0038.net>
  *  Kirill Ponomarew <ponomarew@oberon.net>
  *  Kiriyama Kazuhiko <kiri@kiri.toba-cmt.ac.jp>
  *  Konstantinos Konstantinidis <kkonstan@daemon.gr>
  *  Koop Mast <kwm@FreeBSD.org>
  *  Krzysztof Stryjek <ports@bsdserwis.com>
  *  Larry Rosenman <ler@FreeBSD.org>
  *  Lars Koeller <Lars_Koeller@odie.physik2.uni-rostock.de>
  *  Lars Thegler <lars@thegler.dk>
  *  Lars Thegler <lth@FreeBSD.org>
  *  Lasse L. Johnsen (lasse@freebsdcluster.org)
  *  Lefteris Chatzibarbas <lefcha@hellug.gr>
  *  Lukasz Wasikowski <lukasz@wasikowski.net>
  *  MANTANI Nobutaka <nobutaka@nobutaka.com>
  *  Marcelo Araujo <araujobsd@gmail.com>
  *  Marco Broeder <marco.broeder@posteo.eu>
  *  Marcus Alves Grando <mnag@FreeBSD.org>
  *  Marijn Meijles <marijn@stack.nl>
  *  Mario S F Ferreira <lioux@FreeBSD.org>
  *  Mario S F Ferreira <lioux@linf.unb.br>
  *  Mario S F Ferreira <lioux@linf.unb.br> # Created by Matthias Andree
  *  Mario Sergio Fujikawa Ferreira <lioux@FreeBSD.org>
  *  Mark Felder <feld@FreeBSD.org>
  *  Mark Starovoytov <mark_sf@kikg.ifmo.ru>
  *  Martin Blapp
  *  Martin Matuska <mm@FreeBSD.org>
  *  Martin Wilke (miwi@FreeBSD.org)
  *  Martin Wilke <miwi@FreeBSD.org>
  *  Martti Kuparinen <martti.kuparinen@ericsson.com>
  *  Masafumi NAKANE <max@FreeBSD.org>
  *  Masafumi Otsune <info@otsune.com>
  *  Masaki TAGAWA <masaki@club.kyutech.ac.jp>
  *  Matt Emmerton <matt@gsicomp.on.ca>
  *  Matthew Luckie <mjl@luckie.org.nz>
  *  Matthew N. Dodd <mdodd@FreeBSD.org>
  *  Matthew Seaman
  *  Matthew Seaman <matthew@FreeBSD.org>
  *  Matthias Andree <mandree@FreeBSD.org>
  *  Matthias Andree <matthias.andree@gmx.de>
  *  Matthias Fechner <mfechner@FreeBSD.org>
  *  Max Laier <max@love2party.net>
  *  Maxim Sobolev <sobomax@FreeBSD.org>
  *  Maxim Tulyuk <mt@primats.org.ua>
  *  Meno Abels <meno.abels@adviser.com>
  *  Michael L. Hostbaek (mich@freebsdcluster.org)
  *  Michael Ranner <michael@ranner.eu>
  *  Miguel Mendez <flynn@energyhq.es.eu.org>
  *  Mij <mij@bitchx.it>
  *  Mikhail T. (m.tsatsenko@gmail.com)
  *  Mikhail Teterin
  *  Miroslav Lachman
  *  Mohammad S. Babaei <info@babaei.net>
  *  Murilo Opsfelder <mopsfelder@gmail.com>
  *  Nagy, Attila <bra@fsn.hu>
  *  Nate Underwood <natey@natey.com>
  *  Neil Blakey-Milner
  *  Neil Blakey-Milner <nbm@FreeBSD.org>
  *  Neil Blakey-Milner <nbm@rucus.ru.ac.za>
  *  Neil Darlow <neil@darlow.co.uk>
  *  Nemo Liu <nemoliu@FreeBSD.org>
  *  Netherby <netherby@dancingfortune.com>
  *  Nick Hilliard <nick@foobar.org>
  *  Nils Vogels <nivo+kw+ports.bfa274@is-root.com>
  *  Oliver Braun
  *  Oliver Braun <obraun@FreeBSD.org>
  *  Oliver Eikemeier
  *  Oliver Eikemeier <eik@FreeBSD.org>
  *  Oliver Eikemeier <eikemeier@fillmore-labs.com>
  *  Olivier Cochard-Labbe <olivier@FreeBSD.org>
  *  Olivier Girard <Olivier.Girard@univ-angers.fr>
  *  Omer Faruk Sen <ofsen@enderunix.org>
  *  Ozkan KIRIK <ozkan@enderunix.org>
  *  Pav Lucistnik <pav@FreeBSD.org>
  *  Pawel Pekala <c0rn@o2.pl>
  *  Pawel Pekala <pawel@FreeBSD.org>
  *  Pawel Pekala <pawel@freebsd.org>
  *  Pete Fritchman <petef@databits.net >
  *  Peter Hollaubek <fifteen@inext.hu>
  *  Peter Kieser <peter@kieser.ca>
  *  Peter Pentchev <roam@FreeBSD.org>
  *  Peter Wemm <peter@FreeBSD.org>
  *  Po-Chuan Hsieh <sunpoet@FreeBSD.org>
  *  R.I.Pienaar <rip@devco.net>
  *  Radim Kolar
  *  RicardoSSP <ricardo.katz@gmail.com>
  *  Rob Evers <rob@debank.tv>
  *  Robert Felber <robtone@ek-muc.de>
  *  Robert Nelson <robertn@the-nelsons.org>
  *  Romain Tartiere <romain@blogreen.org>
  *  Rozhuk Ivan <rozhuk.im@gmail.com>
  *  Ryan Steinmetz <zi@FreeBSD.org>
  *  Sahil Tandon <sahil@tandon.net>
  *  Satoru Suzuki <xsuzu@yokohama.riken.jp>
  *  Scott Blachowicz <scott+ports@sabami.seaslug.org>
  *  Scott Lambert <lambert@lambertfam.org>
  *  Sean Chittenden <seanc@FreeBSD.org>
  *  Sergei Kolobov <sergei@FreeBSD.org>
  *  Sergei Kolobov <sergei@kolobov.com>
  *  Sergey A. Osokin <osa@FreeBSD.org>
  *  Sergey Matveychuk <sem@FreeBSD.org>
  *  Sergey Samoyloff <gonza@techline.ru>
  *  Sergey Skvortsov <skv@FreeBSD.org>
  *  Sergey Skvortsov <skv@protey.ru>
  *  Shaun Amott <shaun@FreeBSD.org>
  *  Sheldon Hearn <sheldonh@FreeBSD.org>
  *  Simon 'corecode' Schubert <corecode@corecode.ath.cx>
  *  Simon Barner <barner@in.tum.de>
  *  Simon Dick <simond@irrelevant.org>
  *  Stefan A. Deutscher (sad@mailaps.org)
  *  Stefan Bethke <stb@lassitu.de>
  *  Stephen Roznowski <sjr1@flash.net>
  *  Stephon Chen <stephon@pixnet.tw>
  *  Steve Wills <swills@FreeBSD.org>
  *  Steven Kreuzer <skreuzer@f2o.org>
  *  Sunpoet Po-Chuan Hsieh <sunpoet@FreeBSD.org>
  *  Sylvio Cesar <sylvio@FreeBSD.org>
  *  TAKAHASHI Kaoru <kaoru@kaisei.org>
  *  TAKATSU Tomonari <tota@rtfm.jp>
  *  Talal Al-Dik <tad@vif.com>
  *  Ted Faber <faber@isi.edu>
  *  Terry Sposato
  *  The Anarcat <anarcat@anarcat.ath.cx>
  *  Thierry Thomas (<thierry@pompo.net>)
  *  Thomas Abthorpe <thomas@goodking.ca>
  *  Thomas Gellekum <tg@FreeBSD.org>
  *  Thomas Lotterer <thomas.lotterer@cw.com>
  *  Thomas Seck <tmseck@netcologne.de>
  *  Tim Bishop <tim@bishnet.net>
  *  Tom Hukins <tom@eborcom.com>
  *  Tom Judge <tj@FreeBSD.org>
  *  Tom McLaughlin <tmclaugh@sdf.lonestar.org>
  *  Tomasz Paszkowski <ns88@k.pl>
  *  Torsten Blum <torstenb@FreeBSD.org>
  *  Torsten Zuehlsdorff <ports@toco-domains.de>
  *  Trish Lynch <trish@bsdunix.net>
  *  Tsung-Han Yeh <snowfly@yuntech.edu.tw>
  *  Tuc <freebsd-ports@t-b-o-h.net>
  *  Udo Schweigert
  *  Udo Schweigert <ust@cert.siemens.de>
  *  Uffe Jakobsen <uffe@uffe.org>
  *  Victor Balada Diaz <victor@bsdes.net>
  *  Vidar Karlsen <vidar@karlsen.tech>
  *  Ville Eerola <ve@sci.fi>
  *  Vivek Khera <vivek@khera.org>
  *  Vladimir Kondratiev <wulf@mail.mipt.ru>
  *  Vsevolod Lobko <seva@sevasoft.kiev.ua>
  *  Vsevolod Stakhov <vsevolod@highsecure.ru>
  *  Wei-chun Chao
  *  Wen Heping <wen@FreeBSD.org>
  *  Will Andrews <will@FreeBSD.org>
  *  Xavier Beaudouin <kiwi@oav.net>
  *  Yarema <yds@CoolRat.org>
  *  Yasuhiro KIMURA <yasu@utahime.org>
  *  Yen-Ming Lee <leeym@FreeBSD.org>
  *  Yen-Ming Lee <leeym@cae.ce.ntu.edu.tw>
  *  Yen-Ming Lee <leeym@leeym.com>
  *  Yoshiro MIHIRA <sanpei@yy.cs.keio.ac.jp>
  *  Yoshisato YANAGISAWA
  *  Zak Johnson <zakj@nox.cx>
  *  Zane C. Bowers
  *  Zeus Panchenko <zeus@gnu.org.ua>
  *  Zhen REN <bg1tpt@gmail.com>
  *  ache
  *  ache@FreeBSD.org
  *  arensb@ooblick.com
  *  bremner@unb.ca
  *  brett@peloton.physics.montana.edu
  *  bsam
  *  chinsan
  *  chris
  *  chris@shagged.org
  *  clive
  *  clsung
  *  clsung@dragon2.net
  *  dchapes@zeus.leitch.com
  *  delphij@FreeBSD.org
  *  delphij@FreeBSD.org.cn
  *  dhagan@cs.vt.edu
  *  dliakh
  *  dlowe
  *  dm
  *  eivind
  *  fluffy
  *  gahr
  *  gmarco@scotty.masternet.it
  *  gmc@sonologic.nl
  *  ijliao
  *  ismail@enderunix.org
  *  itojun@itojun.org
  *  janos.mohacsi@bsd.hu
  *  johnpupu <johnpupu@gmail.com>
  *  kaz
  *  krion
  *  liamfoy@sepulcrum.org
  *  markm@FreeBSD.org
  *  matusita@FreeBSD.org
  *  mich@freebsdcluster.org
  *  mwest@uct.ac.za
  *  n_hibma@qubesoft.com
  *  nbm
  *  nork@FreeBSD.org
  *  ofsen@enderunix.org
  *  pat
  *  petef
  *  petef@FreeBSD.org
  *  pst
  *  punkt.de Hosting Team <mops@punkt.de>
  *  rea@FreeBSD.org
  *  roam@FreeBSD.org
  *  sheldonh@FreeBSD.org
  *  shigeri <shigeri@m10.alpha-net.ne.jp>
  *  snowchyld
  *  tobez@tobez.org
  *  torstenb
  *  trevor
  *  v.velox@vvelox.net
  *  vanilla
  *  will
  *  wolpert

With hat:	portmgr
b587cc2b4d
Larry Rosenman (ler) · 2.3.19.1
mail/dovecot: update to 2.3.19.1

Due to a severe bug in doveadm deduplicate, we are releasing patch
release 2.3.19.1.
65db233146
Larry Rosenman (ler) · 2.3.19
mail/dovecot, mail/dovecot-pigeonhole: Upgrade to 2.3.19, 0.5.19

Dovecot Changelog:
+ Added mail_user_session_finished event, which is emitted when the mail
  user session is finished (e.g. imap, pop3, lmtp). It also includes
  fields with some process statistics information.
  See https://doc.dovecot.org/admin_manual/list_of_events/ for more
  information.
+ Added process_shutdown_filter setting. When an event matches the filter,
  the process will be shutdown after the current connection(s) have
  finished. This is intended to reduce memory usage of long-running imap
  processes that keep a lot of memory allocated instead of freeing it to
  the OS.
+ auth: Add cache hit indicator to auth passdb/userdb finished events.
  See https://doc.dovecot.org/admin_manual/list_of_events/ for more
  information.
+ doveadm deduplicate: Performance is improved significantly.
+ imapc: COPY commands were sent one mail at a time to the remote IMAP
  server. Now the copying is buffered, so multiple mails can be copied
  with a single COPY command.
+ lib-lua: Add a Lua interface to Dovecot's HTTP client library. See
  https://doc.dovecot.org/admin_manual/lua/ for more information.
- auth: Cache lookup would use incorrect cache key after username change.
- auth: Improve handling unexpected LDAP connection errors/hangs.
  Try to fix up these cases by reconnecting to the LDAP server and
  aborting LDAP requests earlier.
- auth: Process crashed if userdb iteration was attempted while auth-workers
  were already full handling auth requests.
- auth: db-oauth2: Using %{oauth2:name} variables caused unnecessary
  introspection requests.
- dict: Timeouts may have been leaked at deinit.
- director: Ring may have become unstable if a backend's tag was changed.
  It could also have caused director process to crash.
- doveadm kick: Numeric parameter was treated as IP address.
- doveadm: Proxying can panic when flushing print output. Fixes
  Panic: file ioloop.c: line 865 (io_loop_destroy): assertion failed:
  (ioloop == current_ioloop).
- doveadm sync: BROKENCHAR was wrongly changed to '_' character when
  migrating mailboxes. This was set by default to %, so any mailbox
  names containing % characters were modified to "_25".
- imapc: Copying or moving mails with doveadm to an imapc mailbox could
  have produced "Error: Syncing mailbox '[...]' failed" Errors. The
  operation itself succeeded but attempting to sync the destination
  mailbox failed.
- imapc: Prevent index log synchronization errors when two or more imapc
  sessions are adding messages to the same mailbox index files, i.e.
  INDEX=MEMORY is not used.
- indexer: Process was slowly leaking memory for each indexing request.
- lib-fts: fts header filters caused binary content to be sent to the
  indexer with non-default configuration.
- doveadm-server: Process could hang in some situations when printing
  output to TCP client, e.g. when printing doveadm sync state.
- lib-index: dovecot.index.log files were often read and parsed entirely,
  rather than only the parts that were actually necessary. This mainly
  increased CPU usage.
- lmtp-proxy: Session ID forwarding would cause same session IDs being
  used when delivering same mail to multiple backends.
- log: Log prefix update may have been lost if log process was busy.
  This could have caused log prefixes to be empty or in some cases
  reused between sessions, i.e. log lines could have been logged for the
  wrong user/session.
- mail_crypt: Plugin crashes if it's loaded only for some users. Fixes
  Panic: Module context mail_crypt_user_module missing.
- mail_crypt: When LMTP was delivering mails to both recipients with mail
  encryption enabled and not enabled, the non-encrypted recipients may
  have gotten mails encrypted anyway. This happened when the first
  recipient was encrypted (mail_crypt_save_version=2) and the 2nd
  recipient was not encrypted (mail_crypt_save_version=0).
- pop3: Session would crash if empty line was sent.
- stats: HTTP server leaked memory.
- submission-login: Long credentials, such as OAUTH2 tokens, were refused
  during SASL interactive due to submission server applying line length
  limits.
- submission-login: When proxying to remote host, authentication was not
  using interactive SASL when logging in using long credentials such as
  OAUTH2 tokens. This caused authentication to fail due to line length
  constraints in SMTP protocol.
- submission: Terminating the client connection with QUIT command after
  mail transaction is started with MAIL command and before it is
  finished with DATA/BDAT can cause a segfault crash.
- virtual: doveadm search queries with mailbox-guid as the only parameter
  crashes: Panic: file virtual-search.c: line 77 (virtual_search_get_records):
  assertion failed: (result != 0)

Pigeonhole Changelog:
This release is done to maintain parity with dovecot 2.3.19 release, so
it does not contain any news-worthy changes.
a3215f1b9d
Larry Rosenman (ler) · 2.3.18_1
mail/dovecot: add mail/dovecot-coi to the warning
cfaa9d33a8
Larry Rosenman (ler) · 2.3.18_1
mail/dovecot-fts-elastic: New FTS plugin for dovecot

PR: 263382
Reported By: bgupta@kde.org
4b1db7ecfd
Larry Rosenman (ler) · 2.3.18_1
Revert "mail/dovecot: Add FLAVORs for CDB, LDAP, MYSQL, PGSQL, and SQLITE3"

Flavors currently breaks mail/dovecot-pigeonhole,
mail/dovecot-fts-xapian, mail/dovecot-fts-flatcurve.

nc & I (ler) will work to see if we can come to a better way to do this

This reverts commit 0dd69d0adfd2ef48dc949bb2325c2c534117fc29.
c0ed6e081a
Neel Chauhan (nc) · 2.3.18_1
mail/dovecot: Add FLAVORs for CDB, LDAP, MYSQL, PGSQL, and SQLITE3

PR:		254164
Approved by:	maintainer timeout (>1 year)
0dd69d0adf
Jan Beich (jbeich) · 2.3.18_1
devel/icu: update to 71.1

Changes:	https://github.com/unicode-org/icu/releases/tag/release-71-1
Reported by:	GitHub (watch releases)
PR:		262654
Exp-run by:	antoine
Approved by:	fluffy
268cee3b02
Larry Rosenman (ler) · 2.3.18
mail/dovecot, mail/dovecot-pigeonhole: update to 2.3.18, 0.5.18 respectively

Dovecot ChangeLog:
* Removed mail_cache_lookup_finished event. This event wasn't especially
  useful, but it increased CPU usage significantly.
* fts: Don't index inline base64 encoded content in FTS indexes using
  the generic tokenizer. This reduces the FTS index sizes by removing
  input that is very unlikely to be searched for. See
  https://doc.dovecot.org/configuration_manual/fts/tokenization for
  details on how base64 is detected. Only applies when using libfts.
* lmtp: Session IDs are now preserved through proxied connections, so
  LMTP sessions can be tracked. This slightly changes the LMTP session
  ID format by appending ":Tn" (transaction), ":Pn" (proxy connection)
  and ":Rn" (recipient) counters after the session ID prefix.
+ Events now have "reason_code" field, which can provide a list of
  reasons why the event is happening. See
  https://doc.dovecot.org/admin_manual/event_reasons/
+ New events are added. See https://doc.dovecot.org/admin_manual/list_of_events/
+ fts: Added fts_header_excludes and fts_header_includes settings to
  specify which headers to index. See
  https://doc.dovecot.org/settings/plugin/fts-plugin#plugin-fts-setting-fts-header-excludes
  for configuration details.
+ fts: Initialize the textcat language detection library only once per
  process. This can reduce CPU usage if fts_languages setting has multiple
  languages listed and service indexer-worker { service_count } isn't 1.
  Only applies when using libfts.
+ lib-storage: Reduced CPU usage significantly for some operations that
  accessed lots of emails (e.g. fetching all flags in a folder, SORT, ...)
+ lib: DOVECOT_PREREQ() - Add micro version which enables compiling
  external plugins against different versions of Dovecot.
+ lmtp: Added new lmtp_verbose_replies setting that makes errors sent to
  the LMTP client much more verbose with details about why exactly
  backend proxy connections or commands are failing.
+ submission: Support implicit SASL EXTERNAL with
  submission_client_workarounds=implicit-auth-external. This allows
  automatically logging in when SSL client certificate is present.
- *-login: Statistics were disabled if stats process connection was lost.
- auth: Authentication master user login fails with SCRAM-* SASL mechanisms.
- auth: With auth_cache_verify_password_with_worker=yes, passdb extra
  fields in the auth cache got lost.
- doveadm: Fixed crash if zlib_save_level setting was specified,
  but zlib_save was unset. v2.3.15 regression.
- doveadm: Proxying can panic when flushing print output. v2.3.17
  regression. Fixes:
  Panic: file ioloop.c: line 865 (io_loop_destroy): assertion failed:
  (ioloop == current_ioloop)
- doveadm: stats add --group-by parameter didn't work.
- fts: Using email-address fts tokenizer could result in excessive memory
  usage with garbage email input. This could cause the indexer-worker
  processes to fail due to reaching the VSZ memory size limit.
  Only applies when using libfts.
- imap: A SEARCH command timing out while fts returns indexes may timeout
  returning "NO [SERVERBUG]", while it should return "NO [INUSE]" instead.
- imap: LIST-EXTENDED doesn't return STATUS for all folders. Sending
  LIST .. RETURN (SUBSCRIBED STATUS (...)) did not return STATUS for
  folders that are not subscribed when they have a child folder that is
  subscribed as mandated by IMAP RFCs.
- imapc: Mailbox vsize calculation crashed with
  Panic: file index-mailbox-size.c: line 344 (index_mailbox_vsize_hdr_add_missing):
  assertion failed: (mails_left > 0)
- indexer: If indexer-worker crashes, the request it was processing gets
  stuck in the indexer process. This stops indexing for the folder until
  indexer process is restarted. v2.3.14 regression.
- indexer: Process was slowly leaking memory for each indexing request.
- lib-event: Unnamed events were wrongly filtered out for event/metric
  filters like "event=abc OR something_independent_of_event_name".
- lib-index: 64-bit big endian CPUs handle last_used field in
  dovecot.index.cache wrong.
- lib-ssl-iostream: Fix buggy OpenSSL error handling without assert-crashing.
  If there is no error available, log it as an error instead of crashing.
  The previous fix for this in v2.3.11 was incomplete. Fixes
  Panic: file istream-openssl.c: line 51 (i_stream_ssl_read_real):
  assertion failed: (errno != 0)
- lmtp: Out-of-memory issues can happen when proxying large messages to
  LMTP backend servers that accept the message data too slow.
- master: HAProxy header parsing has read buffer overflow if provided
  header size is invalid. This happens only if inet_listener
  { haproxy=yes } is configured and only if the remote IP address is in
  haproxy_trusted_networks.
- old_stats: Plugin kept increasing memory usage, which became
  noticeable with long-running imap sessions.
- stats: Dynamically adding same metric multiple times causes multiple stats.
- submission-login: Authentication does not accept OAUTH2 token (or
  other very long credentials) because it considers the line to be too long.
- submission-login: Process can crash if HELO is pipelined with an
  invalid domain.
- submission-proxy: Don't use SASL-IR if it would make the AUTH command
  line longer than 512 bytes.
- submission: Service would crash if relay server authentication failed.
- virtual: FTS search in a virtual folder could crash if there are
  duplicate mailbox GUIDs. This mainly happened when user had both INBOX
  and INBOX/INBOX folders and the namespace prefix was INBOX/. Fixes
  Panic: file hash.c: line 252 (hash_table_insert_node):
  assertion failed: (opcode == HASH_TABLE_OP_UPDATE)
- virtual: If mailbox opening fails, the backend mailbox is leaked and
  process crashes when client disconnects. Fixes
  Panic: file mail-user.c: line 232 (mail_user_deinit):
  assertion failed: ((*user)->refcount == 1)
- virtual: Searching headers in virtual folders didn't always use
  full-text search indexes, if fts_enforced=no or body.

Pigeonhole ChangeLog:
- duplicate: Users without a home directory can crash with Sieve when
  using duplicate database. v2.3.17 regression.
- imapsieve: When mail was expunged when processing imapsieve events, a
  crash could occur. Fixes Panic: file mail-index-map.c:
  line 558 (mail_index_map_lookup_seq_range): assertion failed: (first_uid > 0)
- managesieve-login: Proxy didn't support forwarding the forward_* passdb fields.
- redirect: Sieve would crash if redirect after keep-equivalent action failed.
- sieve: Interpreter crashes when the Sieve index extension is used with
  index zero.
- vnd.dovecot.filter: Envelope sender string may become corrupted when
  Sieve scripts are using vnd.dovecot.filter. This could end up
  corrupting mbox's From line and return wrong envelope sender string in

Bump mail/dovecot-fts-xapian portrevision.
2c53ea8f10
Jan Beich (jbeich) · 2.3.17_1
devel/icu: update to 70.1

Changes:	https://github.com/unicode-org/icu/releases/tag/release-70-1
Reported by:	GitHub (watch releases)
PR:		258794
Exp-run by:	antoine
f34ece3aa6
Larry Rosenman (ler) · 2.3.17
mail/dovecot: mail/dovecot-pigeonhole: upgrade to 2.3.17, 0.5.17

ChangeLogs:
dovecot:
* Dovecot now logs a warning if time seems to jump forward at least
  100 milliseconds.
* dict: Lines logged by the dict process now contain the dict name as
  the prefix.
* lib-index: mail_cache_fields, mail_always_cache_fields and
  mail_never_cache_fields now verifies that the listed header names are
  valid. Especially the UTF8 "–" character has sometimes been wrongly
  used instead of the ASCII "-".
+ *-login: Added login_proxy_rawlog_dir setting to capture
  rawlogs between proxy and backend.
+ dict: The server process now keeps the last 10 idle dict backends
  cached for maximum of 30 seconds. Practically this acts as a
  connection pool for dict-redis and dict-ldap. Note that this doesn't
  affect dict-sql, because it already had its own internal cache.
+ doveadm: New stats add/remove commands added to support changing the
  metrics configuration on runtime.
+ lazy_expunge: Added lazy_expunge_exclude settings to disable
  lazy_expunge for specific folders. \Special-use flags can be used as
  folder names.
+ lib-lua: Added a new helper function dovecot.restrict_global_variables()
  to disable or enable defining new global variables.
- LAYOUT=index List index rebuild was missing.
- LAYOUT=index: Duplicate GUIDs were not detected.
- acl: When using acl_ignore_namespace Dovecot attempted to access or
  create dovecot-acl-list even when the namespace should have been
  ignored. For virtual namespaces this could have yielded errors about
  "Read-only file system" or "Permission denied".
- auth: Setting the "master" passdb field to empty value would
  cause proxying to fail with an authentication error.
  Now an empty "master" field is ignored.
- doveadm-server: Duplicate error lines were sent for failed commands.
  This didn't normally cause visible problems, except when using
  wildcards in usernames or -A parameter to go through multiple users.
- doveadm-server: Logs written by doveadm-server were often missing log
  prefixes, especially mail_log_prefix for mail commands. Logs sent to
  doveadm TCP client were also missing log prefixes.
- doveadm: v2.3 regression: batch command always crashes.
- doveadm: v2.3.11 regression: Commands failed if ssl_cert or
  ssl_key files weren't readable by the user running doveadm, even
  though doveadm didn't actually use these settings
- imap-hibernate: Process may crash at deinit:
  Panic: file ioloop.c: line 928 (io_loop_destroy): assertion failed:
  (ioloop->cur_ctx == NULL).
- imap: Using imap_fetch_failure=no-after can cause assert-crash
  with some IMAP commands if reading the mail fails (e.g. wrong cached
  mail size). Fixes:
  Panic: file index-mail-headers.c: line 198 (index_mail_parse_header_init):
  assertion failed: (!mail->data.header_parser_initialized)
- imap: v2.3.10 regression: When using INDEXPVT to enable private
  \Seen flags (for shared or public namespaces) the STORE command did
  not send untagged replies for the \Seen flag changes.
- imap: v2.3.15 regression: If PREVIEW/SNIPPET is not the final FETCH
  option in the command, the IMAP FETCH response is broken.
- imap: v2.3.15 regression: MOVE command leaks mailbox if it can't be
  opened and crashes at deinit:
  Panic: file mail-user.c: line 229 (mail_user_deinit): assertion failed:
  ((*user)->refcount == 1).
- imapc: Copying nonexistent mail via imapc could have crashed. Fixes:
  Panic: file mail-storage.c: line 2385 (mailbox_transaction_commit_get_changes):
  assertion failed: (ret < 0 || seq_range_count(&changes_r->saved_uids) == save_count ||
  array_count(&changes_r->saved_uids) == 0).
- indexer: v2.3.15 regression: Process crashes if indexer-client
  disconnects while it's waiting for command reply. This happened for
  example if IMAP SEARCH triggered long fts indexing and the IMAP
  client disconnected while waiting for the reply.
- indexer: v2.3.15 regression: Process may have crashed in some situations.
- indexer: v2.3.15 regression: indexer-worker processes may not have
  reached the process_limit in some situations, possibly even using just
  one indexer-worker process even though there were many indexing
  requests queued.
- lib-compression: Reading lz4 compressed mdbox mails may crash. Fixes:
  Panic: file istream.c: line 345 (i_stream_read_memarea):
  assertion failed: (!stream->blocking).
- lib-compression: bench-compress crashes due to xz being read-only.
- lib-lua: Fix linking libdict_lua for non-GNU linkers when Lua support
  is disabled.
- lib-mail: There was no limit on how large an email header name could be.
  Processable header names are now limited to 1000 bytes.
- lib-oauth2: Dovecot disallowed JWT tokens if their validity time was
  older than token creation time (nbf < iat).
- lib-storage: Reduce memory footprint of certain storage operations.
- lib-storage: When listing mailboxes with storage name escape
  characters (^ or .) as part of the mailbox name, the listing could
  show corrupted mailbox names. Due to an issue in handling escaped
  parent folders, the listing of other mailbox names would become
  corrupted by prepending parts of the previously listed mailboxes
  parent folder as prefix to the actual mailbox names. The corruption
  can occur when using LAYOUT=INDEX and maildir or obox, or when using
  the listescape plugin.
- mail-crypt: Fix "-O" argument for "doveadm mailbox cryptokey password"
  command to be a boolean, and not expect a string.
- submission-login: Add support for not authenticating to next hop in
  submission proxying.
- submission-login: EHLO was not sent again after XCLIENT when doing
  submission proxying.
- virtual: Mailboxes do not correctly detect underlying mailboxes
  getting re-created even though they have a different UIDVALIDITY or
  GUID.

Pigeonhole:
- duplicate: The Sieve duplicate test is prone to false negatives when
  the user receives many e-mails concurrently, meaning that duplicate
  deliveries can still occur.
- fileinto: v2.3.16 regression: Sieve delivery crashes if mail is
  delivered to non-existing and existing folder.
- imap-filter-sieve: v2.3.15 regression: The CPU limits on Sieve
  execution are too easily exceeded in IMAP context (the IMAPSieve and
  FILTER=SIEVE capabilities). Changed the default to unlimited CPU time
  for IMAP context, since similar excessive resource usage can be caused
  by other means as well. The CPU limits on Sieve scripts executed at
  LDA/LMTP delivery are still enforced by default.
- redirect:  The Sieve redirect action has protections against users
  triggering mail loops. Unfortunately, the detection of a redirect mail
  loop sometimes causes the message to get lost if no other Sieve action
  is applied that delivers the message somewhere else.
- redirect: v2.3.16 regression: With certain Sieve scripts if redirect
  fails due to temporary failure, the lmtp process may crash after the
  delivery. Fixes:
  Panic: file mail-user.c: line 229 (mail_user_deinit):
  assertion failed: ((*user)->refcount == 1).
de2e20b626
Larry Rosenman (ler) · 2.3.16
mail/dovecot: update to 2.3.16

mail/dovecot-pigeonhole: update to 0.5.16

ChangeLogs:
https://dovecot.org/pipermail/dovecot-news/2021-August/000463.html
https://dovecot.org/pipermail/dovecot-news/2021-August/000464.html
6809759a87
Kurt Jaeger (pi) · 2.3.15
mail/dovecot-*: update 2.3.13 -> 2.3.15 and related ports

PR:			256860
Approved by:		fluffy (ports-secteam)
Submitted by:		otis
Relnotes:		https://dovecot.org/pipermail/dovecot-news/2021-June/000457.html
			https://dovecot.org/pipermail/dovecot-news/2021-March/000455.html
			https://dovecot.org/pipermail/dovecot-news/2021-March/000456.html
			https://dovecot.org/pipermail/dovecot-news/2021-June/000458.html
Security:		CVE-2021-29157, CVE-2021-33515, CVE-2020-28200
Differential Revision:	https://reviews.freebsd.org/D30866
MFH:			2021Q3
21a797ec8c
Jan Beich (jbeich) · 2.3.13_1
devel/icu: update to 69.1

Changes:	https://github.com/unicode-org/icu/releases/tag/release-69-1
Reported by:	GitHub (watch releases)
69d24a727d
Mathieu Arnold (mat) · 2.3.13
all: Remove all other $FreeBSD keywords.
135fdeebb9
Mathieu Arnold (mat) · 2.3.13
Remove # $FreeBSD$ from Makefiles.
305f148f48
Mathieu Arnold (mat) · 2.3.13
Remove occurrences of %%LUA_LIBDIR%%.

Differential Revision:	https://reviews.freebsd.org/D29138
18f4cb47cc
Tobias Kortkamp (tobik) · 2.3.13
Remove redundant option descriptions that match the default ones

(ignoring case)

Reported by:	danfe (for net/mosquitto), portscan
f2499eec5a
Dima Panov (fluffy) · 2.3.13
mail/dovecot: unbreak build with lua54

Reported by:	poudriere failure
Approved by:	portmgr blanket (fix build)
MFH:		2021Q1
c22ac8b92c
Kurt Jaeger (pi) · 2.3.13
mail/dovecot: update 2.3.11.3 -> 2.3.13, fix CVE in non-default config mail/dovecot-pigeonhole: update 0.5.11 -> 0.5.13

- please note: option VPOPMAIl was removed from upstream

PR:		252415
Submitted by:	Evilham <contact@evilham.com>
Reviewed by:	fluffy
Approved by:	ler (maintainer)
MFH:		2021Q1
Relnotes:	https://dovecot.org/pipermail/dovecot-news/2021-January/000448.html
		https://dovecot.org/pipermail/dovecot-news/2021-January/000449.html
Security:	CVE-2020-24386, CVE-2020-25275
a7c5ce311f
Jan Beich (jbeich) · 2.3.11.3_1
devel/icu: update to 68.1

Changes:	http://site.icu-project.org/download/68
ABI:		https://abi-laboratory.pro/tracker/timeline/icu4c/
Reported by:	GitHub (watch releases)
6d5d6429d5
Larry Rosenman (ler) · 2.3.11.3
mail/dovecot, mail/dovecot-pigeonhole: upgrade to 2.3.11.3 and 0.5.11, repectively.

dovecot changelog:
* CVE-2020-12100: Parsing mails with a large number of MIME parts could
  have resulted in excessive CPU usage or a crash due to running out of
  stack memory.
* CVE-2020-12673: Dovecot's NTLM implementation does not correctly check
  message buffer size, which leads to reading past allocation which can
  lead to crash.
* CVE-2020-10967: lmtp/submission: Issuing the RCPT command with an
  address that has the empty quoted string as local-part causes the lmtp
  service to crash.
* CVE-2020-12674: Dovecot's RPA mechanism implementation accepts
  zero-length message, which leads to assert-crash later on.
* Events: Fix inconsistency in events. See event documentation in
  https://doc.dovecot.org.
* imap_command_finished event's cmd_name field now contains "unknown"
  for unknown commands. A new "cmd_input_name" field contains the
  command name exactly as it was sent.
* lib-index: Renamed mail_cache_compress_* settings to mail_cache_purge_*.
  Note that these settings are mainly intended for testing and usually
  shouldn't be changed.
* events: Renamed "index" event category to "mail-index".
* events: service:<name> category is now using the name from
  configuration file.
* dns-client: service dns_client was renamed to dns-client.
* log: Prefixes generally use the service name from configuration file.
  For example dict-async service will now use
  "dict-async(pid): " log prefix instead of "dict(pid): "
* *-login: Changed logging done by proxying to use a consistent prefix
  containing the IP address and port.
* *-login: Changed disconnection log messages to be slightly clearer.
+ dict: Add events for dictionaries.
+ lib-index: Finish logging with events.
+ oauth2: Support local validation of JWT tokens.
+ stats: Add support for dynamic histograms and grouping. See
  https://doc.dovecot.org/configuration_manual/stats/.
+ imap: Implement RFC 8514: IMAP SAVEDATE
+ lib-index: If a long-running transaction (e.g. SORT/FETCH on a huge
  folder) adds a lot of data to dovecot.index.cache file, commit those
  changes periodically to make them visible to other concurrent sessions
  as well.
+ stats: Add OpenMetrics exporter for statistics. See
  https://doc.dovecot.org/configuration_manual/stats/openmetrics/.
+ stats: Support disabling stats-writer socket by setting
  stats_writer_socket_path="".
- auth-worker: Process keeps slowly increasing its memory usage and
  eventually dies with "out of memory" due to reaching vsz_limit.
- auth: Prevent potential timing attacks in authentication secret
  comparisons: OAUTH2 JWT-token HMAC, imap-urlauth token, crypt() result.
- auth: Several auth-mechanisms allowed input to be truncated by NUL
  which can potentially lead to unintentional issues or even successful
  logins which should have failed.
- auth: When auth policy returned a delay, auth_request_finished event
  had policy_result=ok field instead of policy_result=delayed.
- auth: auth process crash when auth_policy_server_url is set to an
  invalid URL.
- auth: Lua passdb/userdb leaks stack elements per call, eventually
  causing the stack to become too deep and crashing the auth or
  auth-worker process.
- dict-ldap: Crash occurs if var_expand template expansion fails.
- dict: If dict client disconnected while iteration was still running,
  dict process could have started using 100% CPU, although it was still
  handling clients.
- doveadm: Running doveadm commands via proxying may hang, especially
  when doveadm is printing a lot of output.
- imap: "MOVE * destfolder" goes to a loop copying the last mail to the
  destination until the imap process dies due to running out of memory.
- imap: Running "UID MOVE 1:* Trash" on an empty folder goes to infinite
  loop.
- imap: SEARCH doesn't support $.
- lib-compress: Buffer over-read in zlib stream read.
- lib-dns: If DNS lookup times out, lib-dns can cause crash in calling
  process.
- lib-index: Fixed several bugs in dovecot.index.cache handling that
  could have caused cached data to be lost.
- lib-index: Writing to >=1 GB dovecot.index.cache files may cause
  assert-crashes:
  Panic: file mail-index-util.c: line 37 (mail_index_uint32_to_offset):
  assertion failed: (offset < 0x40000000)
- lib-mail: v2.3.11 regression: MIME parts not returned correctly by
  Dovecot MIME parser.
- lib-ssl-iostream: Fix buggy OpenSSL error handling without
  assert-crashing. If there is no error available, log it as an error
  instead of crashing:
  Panic: file iostream-openssl.c: line 599 (openssl_iostream_handle_error):
  assertion failed: (errno != 0)
- lib-ssl-iostream: ssl_key_password setting did not work.
- pop3-login: Login didn't handle commands in multiple IP packets properly.
  This mainly affected large XCLIENT commands or a large SASL initial
  response parameter in the AUTH command.
- pop3: pop3_deleted_flag setting was broken, causing:
  Panic: file seq-range-array.c: line 472 (seq_range_array_invert):
  assertion failed: (range[count-1].seq2 <= max_seq)
- pop3-login: Login would fail with "Input buffer full" if the initial
  response for SASL was too long.
- submission: A segfault crash may occur when the client or server
  disconnects while a non-transaction command like NOOP or VRFY is still
  being processed.
- virtual: Copying/moving mails with IMAP into a virtual folder
assert-crashes:
  Panic: file cmd-copy.c: line 152 (fetch_and_copy): assertion failed:
  (copy_ctx->copy_count == seq_range_count(&copy_ctx->saved_uids))

pigeonhole changelog:
* managesieve: managesieve_max_line_length setting is now a "size" type
  instead of just number of bytes. This allows using e.g. "64k" as the
  value.
- lib-sieve: When folding white space is used in the Message-ID header,
  it is not stripped away correctly before the message ID value is used,
  causing e.g. garbled log lines at delivery.

PR:		248640
PR:		248644
Submitted by:	juraj@lutter.sk
Reported by:	juraj@lutter.sk
MFH:		2020Q3
Security:	87a07de1-e55e-4d51-bb64-8d117829a26a
Security:	CVE-2020-12100
Security:	CVE-2020-12673
Security:	CVE-2020-10967
Security:	CVE-2020-12674
2d4e56cc62
Larry Rosenman (ler) · 2.3.10.1_2
mail/dovecot: fix example config *.conf.ext REINPLACE missed in r537587.

PR:		246963
Submitted by:	kfv@irbug.org
MFH:		2020Q2
0e63d030ac
Larry Rosenman (ler) · 2.3.10.1_1
mail/dovecot: restore the REINPLACE_CMD for the example config.

Overzealous removal.

PR:		246947
Submitted by:	gwbr0601@yahoo.de
Pointy Hat To:	ler
9ddfdc9db4
Larry Rosenman (ler) · 2.3.10.1
mail/dovecot: Upgrade to 2.3.10.1, fixing multiple vulnerabilities.

- CVE-2020-10957: lmtp/submission: A client can crash the server by
  sending a NOOP command with an invalid string parameter. This occurs
  particularly for a parameter that doesn't start with a double quote.
  This applies to all SMTP services, including submission-login, which
  makes it possible to crash the submission service without
  authentication.
- CVE-2020-10958: lmtp/submission: Sending many invalid or unknown
  commands can cause the server to access freed memory, which can lead
  to a server crash. This happens when the server closes the connection
  with a "421 Too many invalid commands" error. The bad command limit
  depends on the service (lmtp or submission) and varies between 10 to
  20 bad commands.
- CVE-2020-10967: lmtp/submission: Issuing the RCPT command with an
  address that has the empty quoted string as local-part causes the
  lmtp service to crash.

Clean up some REINPLACE warnings whilst we're here.

MFH:		2020Q2
Security:	37d106a8-15a4-483e-8247-fcb68b16eaf8
Security:	CVE-2020-10957
Security:	CVE-2020-10958
Security:	CVE-2020-10967
6acbbd56d3