oss-sec mailing list archives

Fwd: mutt 2.3.2 released


From: Sam James <sam () gentoo org>
Date: Mon, 04 May 2026 01:29:26 +0100

In the ChangeLog [0], all of these are listed as security fixes.

"""
2026-04-26 10:45:26 +0800  Kevin J. McCarthy  <kevin () 8t8 us> (4a9c9248)

        * Update UPDATING file for 2.3.2 release.

M       UPDATING

2026-04-18 22:08:19 +0800  Kevin J. McCarthy  <kevin () 8t8 us> (834c5a2e)

        * Fix IMAP auth_cram MD5 digest of secret to use memcpy().
        
        For a secret longer than MD5_BLOCK_LEN, an MD5 digest is used instead.
        However, mutt was incorrectly using strfcpy() instead of memcpy() on
        the raw binary value returned by md5_buffer in hash_passwd.  If
        hash_passwd contained an '\0' it would result in the value being
        truncated.
        
        Additionally, the strfcpy was truncating the hash_passwd by one byte
        regardless, due to passing a "size" of MD5_DIGEST_LEN when the data
        itself was length MD5_DIGEST_LEN.
        
        This likely hasn't been a reported issue because:
        1. CRAM-MD5 is not used much anymore
        2. Most people likely don't have a password length greater than 64
           bytes.
        
        Thanks to evilrabbit () tutamail com for the security report.

M       imap/auth_cram.c

2026-04-18 22:40:46 +0800  Kevin J. McCarthy  <kevin () 8t8 us> (12f54fe3)

        * Check for embedded nul in url_pct_decode().
        
        Consider %00 an invalid character in a URL.
        
        Thanks to evilrabbit () tutamail com for the security report.
        
        Reviewed-by: Alejandro Colomar <alx () kernel org>

M       url.c

2026-04-18 22:36:37 +0800  Kevin J. McCarthy  <kevin () 8t8 us> (f547a849)

        * Fix imap_auth_gss() security level size check and buf_size type.
        
        Make sure send_token.length is 4 bytes before reading the data.
        
        Fix the buf_size type to be uint32_t instead of long.  ntohl()
        operates on, and returns, a 32 bit unsigned integer.  Most
        architectures now use a 64-bit long.
        
        I believe this only worked because in Little-Endian, the
        least-significant bits come first, so even though we were using 8
        bytes of send_token.value (4 of which were out of bounds) for the cast
        to long, only the first 4 bytes were used to truncate to the uint32_t
        that ntohl() used.  Likewise when we converted htonl() further down.
        
        Additionally, the comments indicate that mutt wasn't using buf_size in
        any case, so perhaps that also explains the lack of bug reports.
        
        Thanks to evilrabbit () tutamail com for the security report.
        
        Reviewed-by: Alejandro Colomar <alx () kernel org>

M       imap/auth_gss.c

2026-04-18 21:54:34 +0800  Kevin J. McCarthy  <kevin () 8t8 us> (fdc04a17)

        * Fix infinite loop in gpgme data_object_to_stream().
        
        The code was not properly checking for a -1 return value in the read,
        leading to an infinite loop, and printing past the buffer value to the
        stream.
        
        Thanks to evilrabbit () tutamail com for the security report.
        
        Reviewed-by: Alejandro Colomar <alx () kernel org>

M       crypt-gpgme.c

2026-04-18 21:41:23 +0800  Kevin J. McCarthy  <kevin () 8t8 us> (ebfa2969)

        * Fix NULL dereference in show_sig_summary().
        
        Inside show_one_sig_status(), if the error code is GPG_ERR_NO_PUBKEY,
        key is NULL.  However, show_sig_summary() doesn't check for a NULL key
        before dereferencing for the "key expired" case.
        
        Thanks to evilrabbit () tutamail com for the security report.
        
        Thanks to Alejandro Colomar for his review and suggestion to keep the
        ternary operator.
        
        Reviewed-by: Alejandro Colomar <alx () kernel org>

M       crypt-gpgme.c
"""

[0] https://gitlab.com/muttmua/mutt/raw/mutt-2-3-2-rel/ChangeLog

-------------------- Start of forwarded message --------------------
Date: Sun, 26 Apr 2026 12:34:17 +0800
From: "Kevin J. McCarthy" <kevin () 8t8 us>
To: mutt-announce () mutt org
Subject: mutt 2.3.2 released

Hello Mutt Users,

I've just released version 2.3.2.  Instructions for downloading are available
at <http://www.mutt.org/download.html>, or the tarball can be directly
downloaded from <http://ftp.mutt.org/pub/mutt/>.  Please take the time to
verify the signature file against my public key[1].

Please note that my public key expired a few weeks ago, however I
updated the expiration date.  If you are receiving an expired key
notice, please refresh your keyring, or just import my key again from
one of the sources below.

This release fixes an assortment of issues, including a possible segv in
the GPGME code.  For more details see the commits:

834c5a2e  Fix IMAP auth_cram MD5 digest of secret to use memcpy().
12f54fe3  Check for embedded nul in url_pct_decode().
f547a849  Fix imap_auth_gss() security level size check and buf_size type.
fdc04a17  Fix infinite loop in gpgme data_object_to_stream().
ebfa2969  Fix NULL dereference in show_sig_summary().

Thanks to evilrabbit for reporting issues. And thanks to my fellow mutt-dev'ers for helping discuss, review code, and test the fixes.

-Kevin

[1]
My public key is available at:
   - my personal website: https://8t8.us/configs/80316BDA.asc.pubkey
   - the mutt website: http://www.mutt.org/keys/kevin.key
   - The keys.openpgp.org network
     https://keys.openpgp.org/vks/v1/by-fingerprint/8975A9B33AA37910385C5308ADEF768480316BDA

Attachment: signature.asc
Description:

-------------------- End of forwarded message --------------------

Attachment: signature.asc
Description:


Current thread: