Opened 11 months ago

Closed 11 months ago

Last modified 8 months ago

#22330 closed enhancement (fixed)

dovecot-2.4.2

Reported by: Bruce Dubbs Owned by: Douglas R. Reno
Priority: high Milestone: 13.0
Component: BOOK Version: git
Severity: medium Keywords:
Cc:

Description

New point version.

Change History (8)

comment:1 by Bruce Dubbs, 11 months ago

Summary: dovecot-2,4,2 → dovecot-2.4.2

comment:2 by Douglas R. Reno, 11 months ago

Priority: normal → high

This appears to be a security fix release:

-------- Original Message --------
From: Aki Tuomi via Dovecot-news <dovecot-news@dovecot.org>
Sent: October 29, 2025 8:22:46 AM UTC
To: "dovecot@dovecot.org" <dovecot@dovecot.org>, "dovecot-news@dovecot.org" <dovecot-news@dovecot.org>
Subject: [Dovecot-news] CVE-2025-30189 notification

Affected product: Dovecot IMAP Server
Internal reference: DOV-7830
Vulnerability type: CWE-1250 (Improper Preservation of Consistency Between Independent Representations of Shared State)
Vulnerable version: 2.4.0, 2.4.1
Vulnerable component: auth
Report confidence: Confirmed
Solution status: Fixed in 2.4.2
Researcher credits: Erik <erik@broadlux.com>
Vendor notification: 2025-07-25
CVE reference: CVE-2025-30189
CVSS: 7.4 (CVSS3.1:AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N)

Vulnerability Details:
Using auth caching with oauth2 passdb, passwd passdb or userdb, or passwd userdb, causes 
the first lookup to be cached for all the lookups. This is because the cache key is "%u" 
which no longer actually expands to same as "%{user}".

Workaround:
Disabling auth cache will prevent the issue.

Fix
Install non-vulnerable version of Dovecot. Patch can be found at https://github.com/dovecot/core/compare/a70ce7d3e2f983979e971414c5892c4e30197231%5E...34caed79b76a7b82a2a9c94cf35371bec6c2b826.patch

comment:3 by Douglas R. Reno, 11 months ago

Owner: changed from blfs-book to Douglas R. Reno
Status: new → assigned

comment:4 by Douglas R. Reno, 11 months ago

Dovecot NEWS

* CVE-2025-30189: Passdb oauth2 (not oauth2 mechanism), passdb passwd,
  passdb bsdauth, and userdb passwd drivers would cause users to be
  cached with same cache key when auth cache was enabled.
* auth: Remove proxy_always field.
* config: Change settings history parsing to use python3.
* doveadm: Print table formatter - Print empty values as "-".
* imapc: Propagate remote error codes properly.
* lda: Default mail_home=$HOME environment if not using userdb lookup
* lib-dcrypt: Salt for new version 2 keys has been increased to 16 bytes.
* lib-dregex: Add libpcre2 based regular expression support to Dovecot,
  if the library is missing, disable all regular expressions. This
  adds libpcre2-32 as build dependency.
* lib-oauth2: jwt - Allow nbf and iat to point 1 second into future.
* lib: Replace libicu with our own unicode library. Removes libicu as build
  dependency.
* login-common: If proxying fails due to remote having invalid SSL cert, don't reconnect.
+ auth: Add ssl_client_cert_fp and ssl_client_cert_pubkey_fp fields, see
  https://doc.dovecot.org/latest/core/summaries/settings.html#ssl_peer_certifi...
  for more information.
+ config: Add support for $SET:filter/path/setting.
+ config: Improve @group includes to work with overwriting their settings.
+ doveadm kick: Add support for kicking multiple usernames
+ doveadm mailbox status: Add support for deleted status item.
+ imap, imap-client: Add experimental partial IMAP4rev2 support.
+ imap: Implement support for UTF8=ACCEPT for APPEND
+ lib-oauth2, oauth2: Add oauth2_token_expire_grace setting.
+ lmtp: lmtp-client - Support command pipelining.
+ login-common: Support local/remote blocks better.
+ master: accept() unix/inet connections before creating child process
  to handle it. This reduces timeouts when child processes are slow to
  spawn themselves.
- SMTPUTF8 was accepted even when it wasn't enabled.
- auth, *-login: Direct logging with -L parameter was not working.
- auth: Crash occured when OAUTH token validation failed with
  oauth2_use_worker_with_mech=yes.
- auth: Invalid field handling crashes were fixed.
- auth: ldap - Potential crash could happen at deinit.
- auth: mech-gssapi - Server sending empty initial response would cause
  errors.
- auth: mech-winbind - GSS-SPNEGO mechanism was erroneously marked as
  not accepting NUL.
- config: Multiple issues with $SET handling has been fixed.
- configure: Building without LDAP didn't work.
- doveadm: If source user didn't exist, a crash would occur.
- imap, pop3, submission, imap-urlauth: USER environment usage was broken
  when running standalone.
- imap-hibernate: Statistics would get truncated on unhibernation.
- imap: "SEARCH MIMEPART FILENAME ENDS" command could have accessed
          memory outside allocated buffer, resulting in a crash.
- imapc: Fetching partial headers would cause other cached headers to
  be cached empty, breaking e.g. imap envelope responses when caching to disk.
- imapc: Shared namespace's INBOX mailbox was not always uppercased.
- imapc: imapc_features=guid-forced GUID generation was not working correctly.
- lda: USER environment was not accepted if -d hasn't been specified.
- lib-http: http-url - Significant path percent encoding through parse
  and create was not preserved. This is mainly important for Dovecot's
  Lua bindings for lib-http.
- lib-settings: Crash would occur when using %variables in SET_FILE type settings.
- lib-storage: Attachment flags were attempted to be added for
  readonly mailboxes with mail_attachment_flags=add-flags.
- lib-storage: Root directory for unusable shared namespaces was
  unnecessarily attempted to be created.
- lib: Crash would occur when config was reloaded and logging to syslog.
- login-common: Crash might have occured when login proxy was destroyed.
- sqlite: The sqlite_journal_mode=wal setting didn't actually do anything.
- Many other bugs have been fixed.

comment:5 by Douglas R. Reno, 11 months ago

For 2.4.1:

Dovecot Core NEWS

    auth: Change unix_listener/auth-userdb/group = $SET:default_internal_group This 
change needs dovecot_config_version=2.4.1.
    auth: lua - Remove support for single string result.
    imap: Unconditionally advertise SPECIAL-USE capability.
    lib-dcrypt: Install dcrypt_openssl.so into dovecot modules directory.
    lib-master: For glibc, default MALLOC_MMAP_THRESHOLD_=131072.
    lib-storage: Change default mail_cache_fields to: hdr.date hdr.subject hdr.from 
hdr.sender hdr.reply-to hdr.to hdr.cc hdr.bcc hdr.in-reply-to hdr.message-id 
date.received size.virtual imap.bodystructure mime.parts hdr.references hdr.importance 
hdr.x-priority hdr.x-open-xchange-share-url pop3.uidl pop3.order. This change needs 
dovecot_config_version=2.4.1.
    lib-var-expand: Use moduledir instead of pkglibdir for crypt.
    lmtp: Change the default lmtp_user_concurrency_limit to 10. This change needs 
dovecot_config_version=2.4.1.
    lmtp: Change the default service_restart_request_count to 1. This change needs 
dovecot_config_version=2.4.1.

    auth: Allow configuring passdb/userdb sql to use auth-workers.
    config: Add default group @mailbox_defaults = english.
    config: Improve "Unknown setting" error with more details and suggestions.
    doveconf: Add -U parameter to ignore unknown settings in config file.
    fts-flatcurve: Support lock files in VOLATILEDIR.
    imap-acl: Add support for the IMAP LIST-MYRIGHTS capability (RFC 8440).
    imap-client: Support ANONYMOUS authentication.
    imap: Implement support for the REPLACE capability.

    auth: ldap - Passdb fields were ignored with passdb_ldap_bind_userdn=yes.
    auth: lua - Fix error result handling in lua passdb/userdb.
    auth: oauth2 - When building oauth2 failure reply, memory would leak.
    config: local_name handling would work wrong with multiple names and wildcards.
    fts-flatcurve: A potential crash could occur when searching virtual mailboxes. 
Fixes: Panic: file fts-search.c: line 87 (level_scores_add_vuids): assertion failed: 
(array_count(&vuids_arr) == array_count(&br->scores))
    fts-flatcurve: Maybe queries were done wrong.
    fts-flatcurve: Non-selectable mailboxes were not ignored when doing optimize/rescan.
    fts-flatcurve: Signal 11 crash could happen with fts rescan.
    fts: Fix crash caused by event object lifecycle mishandling.
    imap-hibernate: Client counters would get reset on unhibernation, affecting 
imap_logout_format variables.
    imap: Crash would occur with Maildir when trying to send INPROGRESS during mailbox 
syncing.
    ldap: Dovecot could not be compiled without LDAP.
    lib-dcrypt: Output stream encryption can cause assert crash if attempting to encrypt 
over 64 GiB of data with GCM. This is still not supported with GCM, but it fails better.
    lib-http: HTTP client context memory usage was increasing.
    lib-http: Pipeline corruption could happen after 100 Continue response.
    lib-settings: Variable expansion initialization could crash with Panic: file 
settings.c: line 1560 (settings_var_expand_init_add): assertion failed: 
(I_MAX(num_tables, num_provs) == num_ctx)
    lib-smtp: Pipelining initial SASL response after AUTH was broken.
    lib-var-expand: If filter failed, memory leak would occur.
    lib-var-expand: Older bison versions did not have error symbol for handling causing 
unexpected behaviour on the parser on error conditions.
    quota: Quota calculations had minor bugs causing small errors.

comment:6 by Douglas R. Reno, 11 months ago

Resolution: → fixed
Status: assigned → closed

Fixed at 5c32d194129424b2dd92b864e4c8e16a

comment:7 by Douglas R. Reno, 11 months ago

SA-12.4-031 issued

comment:8 by Bruce Dubbs, 8 months ago

Milestone: 12.5 → 13.0

Milestone renamed

Note: See TracTickets for help on using tickets.