]>
git.ipfire.org Git - thirdparty/dovecot/core.git/log
Stephan Bosch [Sat, 28 Mar 2026 19:14:03 +0000 (20:14 +0100)]
lib-auth: auth-scram-client - Check assertions earlier so that no segfault is triggered instead
Issue found by Coverity (CID: 42292)
Aki Tuomi [Tue, 31 Mar 2026 10:24:37 +0000 (13:24 +0300)]
lib-var-expand: Remove pointless assigment in var_expand_program_execute_one_real()
Forgotten from
2b8036fbb90c0c0d716ee419a5595a4328c118be
Aki Tuomi [Mon, 30 Mar 2026 18:30:45 +0000 (21:30 +0300)]
doveadm: Remove CORS headers from OPTIONS reply
Stephan Bosch [Tue, 10 Mar 2026 04:16:52 +0000 (05:16 +0100)]
lib-program-client: program-client-local - Drop any real root privileges before program execvp()
Running programs with real root privileges while the effective privileges are
user-level is risky and often unexpected.
Karl Fleischmann [Fri, 20 Mar 2026 08:48:52 +0000 (09:48 +0100)]
auth: auth_request_validate_client_fp() - Ensure client certificate can be checked
Aki Tuomi [Mon, 16 Mar 2026 11:44:33 +0000 (13:44 +0200)]
lib-sasl: oauth2 - Send configured scope for failure responses
Aki Tuomi [Mon, 16 Mar 2026 06:52:49 +0000 (08:52 +0200)]
auth: sasl-mech-oauth2 - Add scope to sasl settings for failure responses
Aki Tuomi [Mon, 16 Mar 2026 06:52:06 +0000 (08:52 +0200)]
auth: db-oauth2 - Add accessor for space separated list of scopes
Aki Tuomi [Mon, 16 Mar 2026 06:48:54 +0000 (08:48 +0200)]
lib-sasl: Allow passing scope for failures
Aki Tuomi [Fri, 27 Mar 2026 13:04:24 +0000 (15:04 +0200)]
auth: Use Lua libraries conditionally in test-auth
Aki Tuomi [Fri, 27 Mar 2026 12:13:45 +0000 (14:13 +0200)]
m4: want_lua - Check that lualib header exists
Aki Tuomi [Thu, 26 Feb 2026 12:32:23 +0000 (14:32 +0200)]
NEWS: Add news for 2.4.3
Aki Tuomi [Thu, 12 Mar 2026 15:14:31 +0000 (17:14 +0200)]
lib-sql: driver-sqlite - Fail with empty query
By default SQLite happily accepts empty query, so we need to
error out.
Aki Tuomi [Wed, 11 Mar 2026 10:46:53 +0000 (12:46 +0200)]
auth: passdb-sql - Require update_query to be set when used
Aki Tuomi [Mon, 9 Mar 2026 19:23:29 +0000 (21:23 +0200)]
auth: Initialize set_credentials event properly
Fixes update_query
Aki Tuomi [Wed, 11 Mar 2026 10:30:32 +0000 (12:30 +0200)]
auth: Move passdb event lifecycle handling to auth_request_passdb_event_(begin|end)
Aki Tuomi [Mon, 9 Mar 2026 18:04:27 +0000 (20:04 +0200)]
auth: cache - Use translated username in auth_cache_remove()
Timo Sirainen [Thu, 29 Jan 2026 11:34:39 +0000 (13:34 +0200)]
lib-index: mail_index_try_read_map() - Add assert that header_size is small enough
Timo Sirainen [Thu, 29 Jan 2026 11:33:14 +0000 (13:33 +0200)]
lib-index: Fix detecting overly large mail_index_header.messages_count
The previous check overflowed the integer calculation, which prevented the
check from working correctly.
This commit also removes the unnecessary
mail_index_record_map.mmap_used_size.
Aki Tuomi [Wed, 4 Mar 2026 12:39:43 +0000 (14:39 +0200)]
doveadm: client-connection - Get API key from per-connection settings
Aki Tuomi [Wed, 4 Mar 2026 07:28:18 +0000 (09:28 +0200)]
doveadm: Use datastack for temporary b64 value
There is no need to allocate it from connection pool.
Aki Tuomi [Wed, 4 Mar 2026 06:05:13 +0000 (08:05 +0200)]
doveadm: client-connection - Use timing safe credential check
Timo Sirainen [Mon, 2 Mar 2026 11:50:24 +0000 (13:50 +0200)]
global: Use const for struct imap_parser_params params
Timo Sirainen [Fri, 6 Mar 2026 13:35:12 +0000 (15:35 +0200)]
imap-login: Limit the number of open IMAP parser lists
This prevents attackers from using a large number of '(' in a command to
grow memory usage excessively.
Timo Sirainen [Fri, 6 Mar 2026 13:32:29 +0000 (15:32 +0200)]
lib-imap: Add imap_parser_params.list_count_limit
Timo Sirainen [Fri, 6 Mar 2026 13:25:14 +0000 (15:25 +0200)]
lib-imap, global: Add params parameter to imap_parser_create()
Timo Sirainen [Tue, 24 Feb 2026 10:26:46 +0000 (12:26 +0200)]
auth: userdb sql - Fix escaping for user iteration
This is mostly a non-issue, since userdb iteration doesn't take any
untrusted input.
Broken by
ef0c63b690e6ef9fbd53cb815dfab50d1667ba3a
Timo Sirainen [Tue, 24 Feb 2026 10:24:37 +0000 (12:24 +0200)]
auth: passdb sql - Fix escaping for set_credentials()
This was only used by OTP SASL mechanism after successful authentication, so
it practically couldn't be used for SQL injections.
Broken by
ef0c63b690e6ef9fbd53cb815dfab50d1667ba3a
Timo Sirainen [Mon, 23 Feb 2026 17:54:40 +0000 (19:54 +0200)]
auth: Rewrite ldap_escape() with a unit test
Timo Sirainen [Mon, 23 Feb 2026 17:33:16 +0000 (19:33 +0200)]
auth: test-auth - Run Lua unit tests even when building Lua as plugin
Timo Sirainen [Mon, 23 Feb 2026 11:37:09 +0000 (13:37 +0200)]
lib-settings: settings_get_params() - Fix using provided escape_func
This fixes auth-sql and auth-ldap to actually do escaping.
Timo Sirainen [Fri, 20 Feb 2026 16:37:38 +0000 (18:37 +0200)]
auth: passdb/userdb ldap - Fix escaping ldap filter, base and bind_userdn
Broken by
c2ccdab8d09dec65753ee42366f48d53d7f47cfd
Timo Sirainen [Wed, 25 Feb 2026 07:33:25 +0000 (09:33 +0200)]
auth: Make struct settings_get_params params const
Timo Sirainen [Tue, 24 Feb 2026 11:11:14 +0000 (13:11 +0200)]
lib-mail: Limit the number of RFC2231 parameters that can be parsed
This avoids excessive CPU usage especially in result_append().
Aki Tuomi [Thu, 8 Jan 2026 06:51:59 +0000 (08:51 +0200)]
fts: Remove decode2text.sh
The script is flawed and not fit for production use, should
recommend writing your own script, or using Apache Tika.
Timo Sirainen [Tue, 4 Nov 2025 09:34:30 +0000 (11:34 +0200)]
auth: Don't disconnect auth client when invalid base64 SASL input is received
The base64 input comes from untrusted client. It shouldn't cause the auth
client to disconnect, which causes other concurrent logins to be aborted.
Broken by
1486c30e191ff079bfa78e7950173bb33d8073d9
Timo Sirainen [Wed, 25 Mar 2026 15:33:28 +0000 (17:33 +0200)]
imap: test-imap-client-hibernate - Shorten test directory path
Helps to avoid errors:
net_listen_unix(.../imap-hibernate) failed: File name too long
Stephan Bosch [Wed, 25 Mar 2026 20:56:24 +0000 (21:56 +0100)]
lib-storage: mail-storage - Avoid checking new mailbox name for forbidden characters for implicit NFC rename
Since NFC normalization does not change a text to suddenly contain characters
that are forbidden in a mailbox name, the original mailbox name already
contained the forbidden characters. There is no point in forbidding the
characters in the implicit rename.
Karl Fleischmann [Tue, 24 Mar 2026 08:32:27 +0000 (09:32 +0100)]
lib-dcrypt: Use clean version of cryptographic pools
Ensure blocks are safely cleaned on destruction.
Aki Tuomi [Mon, 23 Mar 2026 19:31:59 +0000 (21:31 +0200)]
auth: Use unique directory for base_dir for unit tests
Otherwise auth-token-secret.dat might get clobbered by other
tests when running in parallel.
Aki Tuomi [Mon, 23 Mar 2026 13:51:05 +0000 (15:51 +0200)]
auth: test-auth-cache - Fix error matching on older distros
Aki Tuomi [Mon, 23 Mar 2026 10:10:30 +0000 (12:10 +0200)]
lib-var-expand: Change var_expand_parameter_value to struct
Aki Tuomi [Sun, 22 Mar 2026 20:08:01 +0000 (22:08 +0200)]
lib-var-expand: Limit padding in hex and hexlify to 256 bytes
Aki Tuomi [Sun, 22 Mar 2026 20:06:34 +0000 (22:06 +0200)]
lib-var-expand: Add fuzz-var-expand-import
Aki Tuomi [Sun, 22 Mar 2026 20:06:23 +0000 (22:06 +0200)]
lib-var-expand: Harden program import
Aki Tuomi [Sun, 22 Mar 2026 18:52:55 +0000 (20:52 +0200)]
lib-var-expand: Use value for error in var_expand_parameter_bool_or_var()
Aki Tuomi [Sun, 22 Mar 2026 18:51:26 +0000 (20:51 +0200)]
lib-var-expand: Check that modulo is positive in special case for fn_calculate()
Aki Tuomi [Sun, 22 Mar 2026 20:24:39 +0000 (22:24 +0200)]
lib-var-expand: Fix delayed error handling
Broken by
2b8036fbb90c0c0d716ee419a5595a4328c118be
Timo Sirainen [Fri, 20 Mar 2026 22:12:40 +0000 (00:12 +0200)]
lib-mail: translation_buf_decode() - Fix comments
Timo Sirainen [Fri, 20 Mar 2026 22:11:53 +0000 (00:11 +0200)]
lib-mail: Fix another potential assert-crash when parsing illegal charset translation sequence
The fix in
110c19e44e95be6b6d2b09cf994ce5b502c8dd8c was incomplete.
Michael M Slusarz [Fri, 13 Mar 2026 03:16:02 +0000 (21:16 -0600)]
lib-http: Limit chunked transfer trailer size
The HTTP chunked transfer parser (`http_transfer_chunked_parse_trailer`)
previously instantiated a header parser for the trailer without applying
any header limits, leading to potential resource exhaustion.
google-labs-jules[bot] [Wed, 22 Oct 2025 18:53:57 +0000 (18:53 +0000)]
feat: Add IMAP4rev1 capability check to imap-login proxy
The imap-login proxy now checks if the remote server advertises the IMAP4rev1 capability. If the capability is not found, the proxying will fail with an error message.
Aki Tuomi [Fri, 20 Mar 2026 20:19:27 +0000 (22:19 +0200)]
lib-var-expand: Initialize providers to NULL
Satisifies older compilers
Aki Tuomi [Wed, 11 Mar 2026 08:06:59 +0000 (10:06 +0200)]
login-common: Add some unit tests
Aki Tuomi [Wed, 11 Mar 2026 08:03:50 +0000 (10:03 +0200)]
login-common: Create clients using master_service event
Aki Tuomi [Thu, 29 Jan 2026 12:59:46 +0000 (14:59 +0200)]
login-common: Use var_expand_template() to simplify logging
Aki Tuomi [Fri, 20 Mar 2026 09:03:31 +0000 (11:03 +0200)]
lib-var-expand: Add var_expand_program_to_string()
Aki Tuomi [Thu, 29 Jan 2026 18:00:26 +0000 (20:00 +0200)]
lib-var-expand: Add var_expand_program_has_variable()
Checks if the program has variable.
Aki Tuomi [Thu, 29 Jan 2026 09:19:25 +0000 (11:19 +0200)]
lib-var-expand: Add var_expand_program_template|split()
These functions can be used to separate literals and actual programs
from a expansion program, this can be useful when template needs
to be processed for SQL queries or similar purposes.
Aki Tuomi [Thu, 29 Jan 2026 09:22:12 +0000 (11:22 +0200)]
lib-var-expand: Add var_expand_program_execute_one()
Executes first program in expansion program.
Aki Tuomi [Thu, 29 Jan 2026 09:18:58 +0000 (11:18 +0200)]
lib-var-expand: Extract var_expand_program_execute_one_real()
Executes one expansion program.
Aki Tuomi [Thu, 29 Jan 2026 10:59:37 +0000 (12:59 +0200)]
lib-var-expand: Extract prepare_state()
Aki Tuomi [Fri, 30 Jan 2026 07:08:34 +0000 (09:08 +0200)]
lib-var-expand: Add small description to header
Aki Tuomi [Thu, 26 Feb 2026 10:36:24 +0000 (12:36 +0200)]
lib-var-expand: Reformat expansion-program.c
Karl Fleischmann [Wed, 18 Mar 2026 13:58:50 +0000 (14:58 +0100)]
lib-dict-extra: Escape paths in username for private dict keys
Prevent path traversal issues in username when doing dict lookups with
private dict keys.
Karl Fleischmann [Wed, 18 Mar 2026 14:08:09 +0000 (15:08 +0100)]
lib-dict-extra: test-dict-fs - Parametrize username testing
This will allow testing path traversal behavior in a follow-up commit.
Timo Sirainen [Wed, 18 Mar 2026 11:45:35 +0000 (13:45 +0200)]
lib-mail: Fix potential assert-crash when parsing illegal charset translation sequence
The assert was added by
7aad885a21e7b3832fa98f41613097383603929f
Timo Sirainen [Thu, 19 Mar 2026 08:47:19 +0000 (10:47 +0200)]
lib: UNICODE_*_CHAR_UTF8_LEN - Remove extra ; from macros
Karl Fleischmann [Thu, 19 Mar 2026 10:53:22 +0000 (11:53 +0100)]
lib-var-expand: Reduce truncated buffer size only if necessary
Timo Sirainen [Tue, 17 Mar 2026 12:30:47 +0000 (14:30 +0200)]
lib-storage, imap: Fix token authentication when re-hibernating IMAP session
Preserve the original session's PID as auth_token_session_pid in userdb
fields next to auth_token field.
Timo Sirainen [Tue, 17 Mar 2026 11:58:48 +0000 (13:58 +0200)]
imap: Add logging details for auth tokens
Timo Sirainen [Tue, 17 Mar 2026 11:58:19 +0000 (13:58 +0200)]
auth: Add debug logging for auth token details
Timo Sirainen [Tue, 17 Mar 2026 11:56:41 +0000 (13:56 +0200)]
imap-hibernate: Explicitly copy individual state fields
This should reduce accidentally forgetting to strdup() some of the added
fields. Also it was confusing because mail_log_prefix was intentionally
not strdup()ed but the pointer was still copied.
Timo Sirainen [Tue, 17 Mar 2026 11:55:29 +0000 (13:55 +0200)]
imap: Fail hibernation early if auth_token is missing for user
Aki Tuomi [Thu, 19 Mar 2026 07:37:45 +0000 (09:37 +0200)]
lib-dcrypt: Use provided algorithm in dcrypt_openssl_digest()
Broken in
7dee2781943863ebebd9d8ee8602a0e97ff094a8
Timo Sirainen [Mon, 16 Mar 2026 16:37:41 +0000 (18:37 +0200)]
lib-settings: settings-history-core.txt - Add missing imap-master socket history
Forgotten in
aaadfd97448c79310264e696ecf50f223cf3ff78
Timo Sirainen [Mon, 16 Mar 2026 16:36:06 +0000 (18:36 +0200)]
lib-settings: settings-history-core.txt - Fix anvil-auth-penalty history
Broken by
a42c7271006750775b6751aa1b98242595e696b3
Aki Tuomi [Mon, 16 Mar 2026 17:55:04 +0000 (19:55 +0200)]
lib-dcrypt: Require encryption key hash length to match hash algorithm
Timo Sirainen [Wed, 11 Mar 2026 17:11:21 +0000 (19:11 +0200)]
fs-posix: Implement file_equals()
Timo Sirainen [Wed, 11 Mar 2026 17:11:13 +0000 (19:11 +0200)]
lib-fs: Add fs_file_equals()
Josef 'Jeff' Sipek [Fri, 13 Mar 2026 11:39:13 +0000 (07:39 -0400)]
lib-json: remove misleading >0x80 check from generator
json_append_escaped_char() is called only by json_append_escaped_ucs4()
and only when the unicode character is <0x80, therefore this check is
useless at best and misleading at worst.
Aki Tuomi [Wed, 11 Mar 2026 11:32:43 +0000 (13:32 +0200)]
configure: Report all CFLAGS and LDFLAGS
Aki Tuomi [Tue, 10 Mar 2026 14:00:16 +0000 (16:00 +0200)]
m4: dovecot - Bump serial
Aki Tuomi [Tue, 10 Mar 2026 18:07:55 +0000 (20:07 +0200)]
m4: dovecot - Fix AM_LDFLAGS usage
Aki Tuomi [Tue, 10 Mar 2026 13:48:34 +0000 (15:48 +0200)]
m4: dovecot - Add address & memory sanitizers to linker flags too
Timo Sirainen [Fri, 13 Mar 2026 11:36:47 +0000 (13:36 +0200)]
lib: ostream-file - Shrink buffer to optimal size after it is flushed
If the ostream buffer was temporarily grown large, it was never shrunk back
to a small value, causing memory to be wasted for long-lived streams.
Timo Sirainen [Thu, 12 Mar 2026 13:43:26 +0000 (15:43 +0200)]
lib-index: Fix potential crash when handling corrupted cache file header
Corrupted deleted_record_count could have caused "division by zero" crash.
Fix both calculations to avoid integer overflows.
Timo Sirainen [Tue, 10 Mar 2026 18:30:35 +0000 (20:30 +0200)]
imap: Make sure proctitle is refreshed after failed unhibernation
This should avoid hanging [waiting on unhibernate client] proctitles.
Timo Sirainen [Mon, 9 Mar 2026 22:47:43 +0000 (00:47 +0200)]
imap: Change imap-master socket to be owned by default_internal_user
This allows imap-hibernation to work with default settings. The previous
change of requiring DOVECOT-TOKEN authentication for imap-master makes
this change safe.
Timo Sirainen [Mon, 9 Mar 2026 22:44:46 +0000 (00:44 +0200)]
imap, imap-hibernate: Use DOVECOT-TOKEN authentication for unhibernation
The hibernated sessions provide an authentication token to imap-hibernate
process, which sends the token to imap-master socket when unhibernating.
If the token doesn't match, the unhibernation will fail. This allows
giving imap-master socket wider permissions, since it can no longer be
used to log in as any user.
Timo Sirainen [Tue, 10 Mar 2026 19:05:48 +0000 (21:05 +0200)]
login-common: Improve logging internal failure errors for proxy reauth
Timo Sirainen [Tue, 10 Mar 2026 19:05:25 +0000 (21:05 +0200)]
doveadm auth test/login: Log the reason for auth failure
Timo Sirainen [Tue, 10 Mar 2026 18:59:16 +0000 (20:59 +0200)]
lib-auth-client: Fill a more exact log_error for auth_request_callback_t
Timo Sirainen [Mon, 9 Mar 2026 22:42:05 +0000 (00:42 +0200)]
lib-auth-client: Add log_error parameter to auth_request_callback_t
Timo Sirainen [Mon, 9 Mar 2026 22:30:28 +0000 (00:30 +0200)]
lib-auth-client: Add comments to auth-client.h
Timo Sirainen [Mon, 9 Mar 2026 22:29:08 +0000 (00:29 +0200)]
lib-auth-client: Add code=temp_fail to all internal failures
This makes sure the caller handles the internal failure as a temporary
failure.
Timo Sirainen [Mon, 9 Mar 2026 22:15:29 +0000 (00:15 +0200)]
lib-auth-client: Fix error message if channel binding not supported by caller
Timo Sirainen [Mon, 9 Mar 2026 15:58:34 +0000 (17:58 +0200)]
lib-auth-client, global: auth_client_set_connect_notify() - Change callback to have error string
Timo Sirainen [Mon, 9 Mar 2026 14:09:42 +0000 (16:09 +0200)]
auth: Add a default auth-token UNIX socket
The permissions are 0666, so everyone can connect to it. This should be
safe enough, because only token authentication is allowed and failures are
delayed. Someone might flood the socket with connections, but auth-userdb
socket already has the same potential issue.
Timo Sirainen [Mon, 9 Mar 2026 14:01:04 +0000 (16:01 +0200)]
auth: Fix request leak when client tries to authenticate with unsupported mechanism