./mail/dovecot2-sqlite, Secure IMAP and POP3 server (SQLite plugin)

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 2.3.15, Package name: dovecot-sqlite-2.3.15, Maintainer: adam

Dovecot is an open source IMAP and POP3 server for Linux/UNIX-like systems,
written with security primarily in mind. This package contains the SQLite
backend plugins.


Required to run:
[shells/bash] [security/openssl] [mail/dovecot2] [archivers/lz4]

Required to build:
[pkgtools/cwrappers]

Package options: kqueue, pam, ssl, tcpwrappers

Master sites:

SHA1: f0c207c5ac7808f91b7ff5379014bea7d8525b6d
RMD160: 7e7f7abc7682bbc2ef9014f795e717b765bc7334
Filesize: 7430.235 KB

Version history: (Expand)


CVS history: (Expand)


   2021-06-21 17:32:33 by Takahiro Kambe | Files touched by this commit (5) | Package updated
Log message:
mail/dovecot: update to 2.3.15

Security release.

v2.3.15 2021-06-21  Aki Tuomi <aki.tuomi@open-xchange.com>

* CVE-2021-29157: Dovecot does not correctly escape kid and azp fields in
  JWT tokens. This may be used to supply attacker controlled keys to
  validate tokens, if attacker has local access.
* CVE-2021-33515: On-path attacker could have injected plaintext commands
  before STARTTLS negotiation that would be executed after STARTTLS
  finished with the client.
* Disconnection log messages are now more standardized across services.
  They also always now start with "Disconnected" prefix.
* Dovecot now depends on libsystemd for systemd integration.
* Removed support for Lua 5.2. Use version 5.1 or 5.3 instead.
* config: Some settings are now marked as "hidden". It's discouraged to
  change these settings. They will no longer be visible in doveconf
  output, except if they have been changed or if doveconf -s parameter
  is used. See https://doc.dovecot.org/settings/advanced/ for details.
* imap-compress: Compression level is now algorithm specific.
  See https://doc.dovecot.org/settings/plugin … ss-plugin/
* indexer-worker: Convert "Indexed" info logs to an event named
  "indexer_worker_indexing_finished". See
  \ 
https://doc.dovecot.org/admin_manual/li … g-finished
+ Add TSLv1.3 support to min_protocols.
+ Allow configuring ssl_cipher_suites. (for TLSv1.3+)
+ acl: Add acl_ignore_namespace setting which allows to entirely ignore
  ACLs for the listed namespaces.
+ imap: Support official RFC8970 preview/snippet syntax. Old methods of
  retrieving preview information via IMAP commands ("SNIPPET and PREVIEW
  with explicit algorithm selection") have been deprecated.
+ imapc: Support INDEXPVT for imapc storage to enable private
  message flags for cluster wide shared mailboxes.
+ lib-storage: Add new events: mail_opened, mail_expunge_requested,
  mail_expunged, mail_cache_lookup_finished. See
  https://doc.dovecot.org/admin_manual/li … ents/#mail
+ zlib, imap-compression, fs-compress: Support compression levels that
  the algorithm supports. Before, we would allow hardcoded value between
  1 to 9 and would default to 6. Now we allow using per-algorithm value
  range and default to whatever default the algorithm specifies.
- *-login: Commands pipelined together with and just after the authenticate
  command cause these commands to be executed twice. This applies to all
  protocols that involve user login, which currently comprises of imap,
  pop3, submisision and managesieve.
- *-login: Processes are supposed to disconnect the oldest non-logged in
  connection when process_limit was reached. This didn't actually happen
  with the default "high-security mode" (with service_count=1) where each
  connection is handled by a separate process.
- *-login: When login process reaches client/process limits, oldest
  client connections are disconnected. If one of these was still doing
  anvil lookup, this caused a crash. This could happen only if the login
  process limits were very low or if the server was overloaded.
- Fixed building with link time optimizations (-flto).
- auth: Userdb iteration with passwd driver does not always return all
  users with some nss drivers.
- dsync: Shared INBOX not synced when "mail_shared_explicit_inbox" was
  disabled. If a user has a shared mailbox which is another user's INBOX,
  dsync didn't include the mailbox in syncing unless explicit naming is
  enabled with "mail_shared_explicit_inbox" set to "yes".
- dsync: Shared namespaces were not synced with "-n" flag.
- dsync: Syncing shared INBOX failed if mail_attribute_dict was not set.
  If a user has a shared mailbox that is another user's INBOX, dsync
  failed to export the mailbox if mail attributes are disabled.
- fts-solr, fts-tika: Using both Solr FTS and Tika may have caused HTTP
  requests to assert-crash: Panic: file http-client-request.c: line 1232
  (http_client_request_send_more): assertion failed: (req->payload_input != NULL)
- fts-tika: 5xx errors returned by Tika server as indexing failures.
  However, Tika can return 5xx for some attachments every time.
  So the 5xx error should be retried once, but treated as success if it
  happens on the retry as well. v2.3 regression.
- fts-tika: v2.3.11 regression: Indexing messages with fts-tika may have
  resulted in Panic: file message-parser.c: line 802 \ 
(message_parser_deinit_from_parts):
  assertion failed: (ctx->nested_parts_count == 0 || \ 
i_stream_have_bytes_left(ctx->input))
- imap: SETMETADATA could not be used to unset metadata values.
  Instead NIL was handled as a "NIL" string. v2.3.14 regression.
- imap: IMAP BINARY FETCH crashes at least on empty base64 body:
  Panic: file index-mail-binary.c: line 358 (blocks_count_lines):
  assertion failed: (block_count == 0 || block_idx+1 == block_count)
- imap: If IMAP client using the NOTIFY command was disconnected while
  sending FETCH notifications to the client, imap could crash with
  Panic: Trying to close mailbox INBOX with open transactions.
- imap: Using IMAP COMPRESS extension can cause IMAP connection to hang
  when IMAP commands are >8 kB long.
- imapc: If remote server sent BYE but didn't immediately disconnect, it
  could cause infinite busy-loop.
- lib-index: Corrupted cache record size in dovecot.index.cache file
  could have caused a crash (segfault) when accessing it.
- lib-oauth2: JWT token time validation now works correctly with
  32-bit systems.
- lib-ssl-iostream: Checking hostnames against an SSL certificate was
  case-sensitive.
- lib-storage: Corrupted mime.parts in dovecot.index.cache may have
  resulted in Panic: file imap-bodystructure.c: line 206 (part_write_body):
  assertion failed: (text == ((part->flags & MESSAGE_PART_FLAG_TEXT) != 0))
- lib-storage: Index rebuilding (e.g. via doveadm force-resync) didn't
  preserve the "hdr-pop3-uidl" header. Because of this, the next pop3
  session could have accessed all of the emails' metadata to read their
  POP3 UIDL (opening dbox files).
- listescape: When using the listescape plugin and a shared namespace
  the plugin didn't work properly anymore resulting in errors like:
  "Invalid mailbox name: Name must not have '/' character."
- lmtp: Connection crashes if connection gets disconnected due to
  multiple bad commands and the last bad command is BDAT.
- lmtp: The Dovecot-specific LMTP parameter XRCPTFORWARD was blindly
  forwarded by LMTP proxy without checking that the backend has support.
  This caused a command parameter error from the backend if it was
  running an older Dovecot release. This could only occur in more complex
  setups where the message was proxied twice; when the proxy generated
  the XRCPTFORWARD parameter itself the problem did not occur, so this
  only happened when it was forwarded.
- lmtp: The LMTP proxy crashes with a panic when the remote server
  replies with an error while the mail is still being forwarded through
  a DATA/BDAT command.
- lmtp: Username may have been missing from lmtp log line prefixes when
  it was performing autoexpunging.
- master: Dovecot would incorrectly fail with haproxy 2.0.14 service
  checks.
- master: Systemd service: Dovecot announces readiness for accepting
  connections earlier than it should. The following environment variables
  are now imported automatically and can be omitted from
  import_environment setting: NOTIFY_SOCKET LISTEN_FDS LISTEN_PID.
- master: service { process_min_avail } was launching processes too
  slowly when master was forking a lot of processes.
- util: Make the health-check.sh example script POSIX shell compatible.
   2021-04-21 13:43:04 by Adam Ciarcinski | Files touched by this commit (1822)
Log message:
revbump for textproc/icu
   2021-01-04 15:57:19 by Takahiro Kambe | Files touched by this commit (8) | Package updated
Log message:
mail/dovecot2: update to 2.3.13

Update mail/dovecot2 pacakge to 2.3.13, including security fixes.

v2.3.13 2021-01-04	Aki Tuomi <aki.tuomi@open-xchange.com>

	* CVE-2020-24386: Specially crafted command can cause IMAP hibernate to
	  allow logged in user to access other people's emails and filesystem
	  information.
	* Metric filter and global event filter variable syntax changed to a
	  SQL-like format. See https://doc.dovecot.org/configuration_m … nt_filter/
	* auth: Added new aliases for %{variables}. Usage of the old ones is
	  possible, but discouraged.
	* auth: Removed RPA auth mechanism, SKEY auth mechanism, NTLM auth
	  mechanism and related password schemes.
	* auth: Removed passdb-sia, passdb-vpopmail and userdb-vpopmail.
	* auth: Removed postfix postmap socket
	+ auth: Added new fields for auth server events. These fields are now
	  also available for all auth events. See
	  https://doc.dovecot.org/admin_manual/li … ion-server
	  for details.
	+ imap-hibernate: Added imap_client_hibernated, imap_client_unhibernated
	  and imap_client_unhibernate_retried events. See
	  https://doc.dovecot.org/admin_manual/list_of_events/ for details.
	+ lib-index: Added new mail_index_recreated event. See
	  https://doc.dovecot.org/admin_manual/li … -recreated
	+ lib-sql: Support TLS options for cassandra driver. This requires
	  cpp-driver v2.15 (or later) to work reliably.
	+ lib-storage: Missing $HasAttachment / $HasNoAttachment flags are now
	  added to existing mails if mail_attachment_detection_option=add-flags
	  and it can be done inexpensively.
	+ login proxy: Added login_proxy_max_reconnects setting (default 3) to
	  control how many reconnections are attempted.
	+ login proxy: imap/pop3/submission/managesieve proxying now supports
	  reconnection retrying on more than just connect() failure. Any error
	  except a non-temporary authentication failure will result in reconnect
	  attempts.
	- 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.
	- auth: SASL authentication PLAIN mechanism could be used to trigger
	  read buffer overflow. However, this doesn't seem to be exploitable in
	  any way.
	- auth: v2.3.11 regression: GSSAPI authentication fails because dovecot
	  disallows NUL bytes for it.
	- dict: Process used too much CPU when iterating keys, because each key
	  used a separate write() syscall.
	- doveadm-server: Crash could occur if logging was done outside command
	  handling. For example http-client could have done debug logging
	  afterwards, resulting in either segfault or
	  Panic: file http-client.c: line 642 (http_client_context_close):
	  assertion failed: (cctx->clients_list == NULL).
	- doveadm-server: v2.3.11 regression: Trying to connect to doveadm server
	  process via starttls assert-crashed if there were no ssl=yes listeners:
	  Panic: file master-service-ssl.c: line 22 (master_service_ssl_init):
	  assertion failed: (service->ssl_ctx_initialized).
	- fts-solr: HTTP requests may have assert-crashed:
	  Panic: file http-client-request.c: line 1232 (http_client_request_send_more):
	  assertion failed: (req->payload_input != NULL)
	- imap: IMAP NOTIFY could crash with a segmentation fault due to a bad
	  configuration that causes errors. Sending the error responses to the
	  client can cause the segmentation fault. This can for example happen
	  when several namespaces use the same mail storage location.
	- imap: IMAP NOTIFY used on a shared namespace that doesn't actually
	  exist (e.g. public namespace for a nonexistent user) can crash with a panic:
	  Panic: Leaked view for index /tmp/home/asdf/mdbox/dovecot.list.index: Opened \ 
in (null):0
	- imap: IMAP session can crash with QRESYNC extension if many changes
	  are done before asking for expunged mails since last sync.
	- imap: Process might hang indefinitely if client disconnects after
	  sending some long-running commands pipelined, for example FETCH+LOGOUT.
	- lib-compress: Mitigate crashes when configuring a not compiled in
	  compression. Errors with compression configuration now distinguish
	  between not supported and unknown.
	- lib-compression: Using xz/lzma compression in v2.3.11 could have
	  written truncated output in some situations. This would result in
	  "Broken pipe" read errors when trying to read it back.
	- lib-compression: zstd compression could have crashed in some situations:
	  Panic: file ostream.c: line 287 (o_stream_sendv_int): assertion failed: \ 
(!stream->blocking)
	- lib-dict: dict client could have crashed in some rare situations when
	  iterating keys.
	- lib-http: Fix several assert-crashes in HTTP client.
	- lib-index: v2.3.11 regression: When mails were expunged at the same
	  time as lots of new content was being saved to the cache (e.g. cache
	  file was lost and is being re-filled) a deadlock could occur with
	  dovecot.index.cache / dovecot.index.log.
	- lib-index: v2.3.11 regression: dovecot.index.cache file was being
	  purged (rewritten) too often when it had a field that hadn't been
	  accessed for over 1 month, but less than 2 months. Every cache file
	  change caused a purging in this situation.
	- lib-mail: MIME parts were not returned correctly by Dovecot MIME parser.
	  Regression caused by fixing CVE-2020-12100.
	- lib-mail: When max nested MIME parts were reached, IMAP BODYSTRUCTURE
	  was written in a way that may have caused confusion for both IMAP
	  clients and Dovecot itself when parsing it. The truncated part is now
	  written out using application/octet-stream MIME type.
	- lib-mail: v2.3.11 regression: Mail delivery / parsing crashed when the
	  10000th MIME part was message/rfc822 (or if parent was multipart/digest):
	  Panic: file message-parser.c: line 167 (message_part_append):
	  assertion failed: (ctx->total_parts_count <= ctx->max_total_mime_parts).
	- lib-oauth2: Dovecot incorrectly required oauth2 server introspection
	  reply to contain username with invalid token.
	- lib-ssl-iostream, lib-dcrypt: Fix building with OpenSSL that has
	  deprecated APIs disabled.
	- lib-storage: When mail's size is different from the cached one (in
	  dovecot.index.cache or Maildir S=size in the filename), this is
	  handled by logging "Cached message size smaller/larger than expected"
	  error. However, in some situations this also ended up crashing with:
	  Panic: file istream.c: line 315 (i_stream_read_memarea):
	  assertion failed: (old_size <= _stream->pos - _stream->skip).
	- lib-storage: v2.3 regression: Copying/moving mails was taking much more
	  memory than before. This was mainly visible when copying/moving
	  thousands of mails in a single transaction.
	- lib-storage: v2.3.11 regression: Searching messages assert-crashed
	  (without FTS): Panic: file message-parser.c: line 174 (message_part_finish):
	  assertion failed: (ctx->nested_parts_count > 0).
	- lib: Dovecot v2.3 moved signal handlers around in ioloops,
	  causing more CPU usage than in v2.2.
	- lib: Fixed JSON parsing: '\' escape sequence may have wrongly resulted
	  in error if it happened to be at read boundary. Any NUL characters and
	  '\u0000' will now result in parsing error instead of silently
	  truncating the data.
	- lmtp, submission: Server may hang if SSL client connection disconnects
	  during the delivery. If this happened repeated, it could have ended
	  up reaching process_limit and preventing any further lmtp/submission
	  deliveries.
	- lmtp: Proxy does not always properly log TLS connection problems as
	  errors; in some cases, only a debug message is logged if enabled.
	- lmtp: The LMTP service can hang when commands are pipelined. This can
	  particularly occur when one command in the middle of the pipeline fails.
	  One example of this occurs for proxied LMTP transactions in which the
	  final DATA or BDAT command is pipelined after a failing RCPT command.
	- login-proxy: The login_source_ips setting has no effect, and therefore
	  the proxy source IPs are not cycled through as they should be.
	- master: Process was using 100% CPU in some situations when a broken
	  service was being throttled.
	- pop3-login: POP3 login would fail with "Input buffer full" if the
	  initial response for SASL was too long.
	- stats: Crash would occur when generating openmetrics data for metrics
	  using aggregating functions.
   2020-11-05 10:09:30 by Ryo ONODERA | Files touched by this commit (1814)
Log message:
*: Recursive revbump from textproc/icu-68.1
   2020-08-12 17:54:38 by Takahiro Kambe | Files touched by this commit (5) | Package updated
Log message:
mail/dovocot2: update to 2.3.11.3

Update dovecot2 and related packages to 2.3.11.3.

v2.3.11.3 2020-07-29	Aki Tuomi <aki.tuomi@open-xchange.com>

	- 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)

v2.3.11.2 2020-07-13	Aki Tuomi <aki.tuomi@open-xchange.com>

	- 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.
	- lib-mail: v2.3.11 regression: MIME parts not returned correctly by
	  Dovecot MIME parser.
	- pop3-login: Login would fail with "Input buffer full" if the initial
	  response for SASL was too long.

v2.3.11 2020-06-17  Aki Tuomi <aki.tuomi@open-xchange.com>

	* 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-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_m … nmetrics/.
	+ 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.
	- 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-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.
	- 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))
   2020-06-02 10:25:05 by Adam Ciarcinski | Files touched by this commit (1689)
Log message:
Revbump for icu
   2020-05-18 16:20:47 by Takahiro Kambe | Files touched by this commit (3) | Package updated
Log message:
mail/dovecot2: update to 2.3.10.1

Update dovecot2 to 2.3.10.1.

v2.3.10.1  2020-05-18  Aki Tuomi <aki.tuomi@open-xchange.com>

- 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.
   2020-04-12 10:29:21 by Adam Ciarcinski | Files touched by this commit (956) | Package updated
Log message:
Recursive revision bump after textproc/icu update