Re: Exim 4.100-RC2 released

Mike Cardwell via Exim-users <[email protected]>
Newsgroups gmane.mail.exim.user
Message-ID <[email protected]>
Hi,

It looks like you don't accept LLM submissions, but I pointed Claude at
4.100 and asked it to find problems that have been introduced since
4.99. Here are a couple of the things that it found, which I tested and
which look legit to me. Take it or leave it, I don't care about
attribution:

=======================================================================
1. Privilege escalation. On exim 4.99 none of these gave you full debug
output for a non privileged user:

exim -d -bt [email protected]
exim -d=0xffffffffffffffff -bt [email protected]
exim -d=0xfffffffffffffffb -bt [email protected]

On exim 4.100, the third one does.
=======================================================================
2. Heap overflow. Checked with valgrind:

It needs the header reference to be the first item in an expansion
string, with something following it. For example, in an ACL:

  warn  log_message = $h_subject: seen from $h_from:

Send a message with an ordinary Subject (no RFC 2047 encoded-word)
whose length is not a multiple of 128. Under valgrind:

  Invalid write of size 1
     by string_catn (string.c:1302)
     by expand_string_internal (expand.c:4906)
     by acl_check_condition (acl.c:4285)

find_header() passes back, via newsize, the size of the block the
returned pointer lives in, and the caller at expand.c:4998 adopts that
pointer as the expansion accumulator instead of copying it. At
expand.c:1733 the RFC 2047 decode result is now wrapped in
string_copy(), which allocates exactly strlen+1, while newsize still
holds the 128-byte-rounded gstring size from earlier in find_header().
The next append trusts the larger figure, skips the grow, and writes
past the end.

Consistent with that, a Subject of exactly 128 bytes (zero rounding
gap) does not overflow, and 129 bytes does.
=======================================================================

I'll maybe investigate the other things it found, if this email (and my
use of an LLM to find the problems) is considered useful.

Mike

On Wed, 2026-08-05 at 14:33 +0100, Bernard Quatermass via Exim-users
wrote:
> Hi everybody,
> 
> The RC rollercoaster continues its journey.
> 
> Thanks to everyone who commented on RC1
> 
> 
> This release candidate v4.100-RC2 is available as
> 
>   * tarball: https://ftp.exim.org/pub/exim/exim4/test
>   * directly from Git: https://code.exim.org/exim/exim
>     tag: exim-4.100-RC2
> 
> The signatures on the release candidate tarballs should be
> 
>   *  key ID 0xBCE58C8CE41F32DF
>      Email: [email protected]
> 
> Please test and give feedback on the RC so that we can shake out
> issues before 4.100 goes official.
> 
> The sourcebase is now closed for feature additions at this point in
> the release process.
> 
> 
>   * Changes since 4.100RC1
> 
> Fixes.
> 
>   * Various compiler quietening
>   * Update GPL doc references
>   * clear $spam_* variables on SMTP RST
>   * Proxy Protocol: add timeout guard to V2 input.  Bug 2957
>   * Proxy Protocol: move startup before remote-host policy checks. 
> Bug 3221
>   * DMARC: native implementation: use a-label of 5322.From
>   * Reject tainted format for internal printf
> 
> 
>    --
> 
> Reminder of Forthcoming Release Procedures Changes
> 
> Following the release of 4.100 we will change to releasing only 4.yyy
> and 4.yyy.zz
> releases on the master branch.
> 
> Intermediate work such as general bug fixing and feature enhancement
> will
> move to the 4.next branch.  We will endeavour to apply any .zz
> security
> fixes to the 4.next branch in a timely manner though there may be
> some lag.
> 
> Release candidates for 4.yyy+1 (4.101 onwards) will be tagged on the
> 4.next branch.
> 
>    --
> 
> 
> New stuff added since 4.99
> 
>   1. Lookups "psl" and "regdom" for, respectively, the public suffix
> or the
>      registered domain, given a domain and a Public Suffix List file.
> 
>   2. EXPERIMENTAL_DMARC_NATIVE optional build feature.  See the
> experimental.spec
>      file.
> 
>   3. Log selectors "spf", "spf_verbose", "dmarc", "dmarc_verbose",
> "dsn".
> 
>   4. Commandline option "-bI:modules" for listing installed dynamic-
> load modules.
> 
>   5. Debug channels "start", "regex" and "macro".
> 
>   6. The exiwhat utility now includes, on the daemon process line,
> counts for
>      smtp and queue-run children.
> 
>   7. Main config option "bounce_charset", for setting Content-type:
> headers.
> 
>   8. Event "proc:deliver".
> 
>   9. Commandline option "-oDSN" for DSN options on commandline
> sourced messages.
> 
> 10. Nongreedy wildcards for local_parts affixes.
> 
> 11. Main config option "queue_run_order", obsoleting
> "queue_run_in_order".
> 
> 12. The redirection router options "forbid_*" and "allow_filter" are
> now
>      expanded before use.
> 
> 
> Removed items since 4.99
> 
> * removed obsolete malware scanners
> * * f-prot6
> * * f-prot6d
> * * sophie
> * * drweb
> * * f-secur
> * * aveserver
> * * kavdaemon
> * * mksd
> 
> * removed Interbase support
> * removed Brightmail support
> 
>    --
> 
> Security related.
> 
> This candidate contains all the previous fixes issues released in
> 4.99.1 through 4.99.5
> 
>    --
> 
> Notable bugfixes include
> 
> * Expansion-test mode with debug (exim -d -be) now shows macro
> expansions.
> * Fix local deliveries. A mistaken optimisation done for 4.99 caused
>        excessive retries on defers
> * Fix radius expansion condition
> * Fix use of a verify held-open connection
> * Fix DNS lookups from perl on nonstandard port
> * Fix DMARC for empty envelope senders
> * Fix GnuTLS hostname verify of a server certificate with a zero-
> length Subject
> 
> Please refer to the ChangeLog file for a complete list.
> 
> 
> File Verification:
> 
> SIZE(00-sha256sums.txt)= 1869
> SIZE(00-sha512sums.txt)= 3021
> SIZE(00-sizes.txt)= 798
> SIZE(exim-4.100-RC2.tar.bz2)= 2183994
> SIZE(exim-4.100-RC2.tar.gz)= 2750808
> SIZE(exim-4.100-RC2.tar.xz)= 2007164
> SIZE(exim-html-4.100-RC2.tar.bz2)= 651374
> SIZE(exim-html-4.100-RC2.tar.gz)= 901928
> SIZE(exim-html-4.100-RC2.tar.xz)= 639524
> SIZE(exim-info-4.100-RC2.tar.bz2)= 485401
> SIZE(exim-info-4.100-RC2.tar.gz)= 653699
> SIZE(exim-info-4.100-RC2.tar.xz)= 486968
> SIZE(exim-pdf-4.100-RC2.tar.bz2)= 2219751
> SIZE(exim-pdf-4.100-RC2.tar.gz)= 2250554
> SIZE(exim-pdf-4.100-RC2.tar.xz)= 2183164
> SIZE(exim-postscript-4.100-RC2.tar.bz2)= 1171709
> SIZE(exim-postscript-4.100-RC2.tar.gz)= 1572466
> SIZE(exim-postscript-4.100-RC2.tar.xz)= 1161660
> SIZE(exim-texinfo-4.100-RC2.tar.bz2)= 459183
> SIZE(exim-texinfo-4.100-RC2.tar.gz)= 614444
> SIZE(exim-texinfo-4.100-RC2.tar.xz)= 462148
> 
> SHA2-256(00-sha256sums.txt)=
> cb2b3cdc88dd64a8d7a535d1070f0171ac59207c72d5f83c9863b6d483111768
> SHA2-256(00-sha512sums.txt)=
> f147cab239ceea647151cb143e8827b1c2518c57c78798a87fb0dfb8775b003c
> SHA2-256(00-sizes.txt)=
> b12b0b0c307e50109b090f078285614308e43a446330995ebf213cbc641f67df
> SHA2-256(exim-4.100-RC2.tar.bz2)=
> 97cc24529ed59bab944fd724d7f96f851b309f327d7f95c764a74426d69a1ba5
> SHA2-256(exim-4.100-RC2.tar.gz)=
> 5c721f75e4abca1bda61cece168107f442d48da40a65ecf511194c02311fd463
> SHA2-256(exim-4.100-RC2.tar.xz)=
> 6ab8bf8a341265a78d35a4b2a8262b531fc219bd8d07b6dfb3515a32a4f78e55
> SHA2-256(exim-html-4.100-RC2.tar.bz2)=
> 79bcba72ffd57453cbe386131b3e4e15528414faa7df279ba2557c45aaf68108
> SHA2-256(exim-html-4.100-RC2.tar.gz)=
> 188e4f2cb4e9921b29bbbb8914bf8d7b1d62ef524799f519ff55e1df0abf8ffb
> SHA2-256(exim-html-4.100-RC2.tar.xz)=
> 8e631705d3fd2ba47c874d89113b7512cf4d300d89387808c723e6400dbf2d36
> SHA2-256(exim-info-4.100-RC2.tar.bz2)=
> c74e14220e7ed1e95105e32540efc5aed203d771b25898bfbb8d05ace52c1834
> SHA2-256(exim-info-4.100-RC2.tar.gz)=
> fd7771d78cacae906a294547bd2c07882f6807a6d68d3509ccd2d8e16f3913d5
> SHA2-256(exim-info-4.100-RC2.tar.xz)=
> 5b685511a3902c04c4610b6112fd36a8e8ef08f0aa4fa5e2f239442949e0a08a
> SHA2-256(exim-pdf-4.100-RC2.tar.bz2)=
> 188d606188421c3ac91ef35613030369fff2fde02142c7fa873e194cefbdbbda
> SHA2-256(exim-pdf-4.100-RC2.tar.gz)=
> 56498dbfbf85c097d93ee5b0ac18e3004a749de96f4c6d88f8e9e9681f731f74
> SHA2-256(exim-pdf-4.100-RC2.tar.xz)=
> c1dd778b2db0c63f76cf1c93710c367d905e6e475360e59c19be80de3351c1a1
> SHA2-256(exim-postscript-4.100-RC2.tar.bz2)=
> 929d63aaf583f66d58d7fed16da9ee44cdf8cdb045c0602d6f008955613f34f7
> SHA2-256(exim-postscript-4.100-RC2.tar.gz)=
> c6268044aeea7e9ae2b9cdbb24a94f953226690b2f273178faa18c0ee7b5e15d
> SHA2-256(exim-postscript-4.100-RC2.tar.xz)=
> 45e55f4658725bf9ec118eeee3236629818cf2e1d3b983a66358079156716ee0
> SHA2-256(exim-texinfo-4.100-RC2.tar.bz2)=
> c17333623da7f48efe03ed9ed7231bc38f75a2aa9f6d6235258a8ad4cb226e9a
> SHA2-256(exim-texinfo-4.100-RC2.tar.gz)=
> ea3ec79cfd669ea147a289d1d0a90d02485141aad0b37d0944a05493ec7ed3d7
> SHA2-256(exim-texinfo-4.100-RC2.tar.xz)=
> f439768669e455ce933375488d10886f2f01f50ed34c3071e9a079ae489930cf
>


-- 
## subscription configuration (requires account):
##   https://lists.exim.org/mailman3/postorius/lists/exim-users.lists.exim.org/
## unsubscribe (doesn't require an account):
##   [email protected]
## Exim details at https://www.exim.org/
## Please use the Wiki with this list - https://code.exim.org/exim/wiki/wiki
signature.asc (application/pgp-signature, 525 B)
-----BEGIN PGP SIGNATURE-----

iQFPBAABCAA5FiEEWazVMy7edA17fJTj0V47FkDmu60FAmp1y9gbHG1pa2UuY2Fy
ZHdlbGxAZ3JlcHVsYXIuY29tAAoJENFeOxZA5rut3bQIAKYR6hCfskNxLdtchK2l
HqLo1+2A6ou3LAxEr6I5FpJXDJVsz/mCr5uGIuJnag77GfRajQOLhAeTHdQZpKoM
YWAG041oD1X5oX0AyIi6TpWgGOpFE//EPAx2KJqTXJNXgcltRJ7DAkjBFSi7YHnO
S190h6DfUknRP8RO+nHDstcMtcoTCs1ZtPufhxdNuIUFWHghjbTbT019Qdftmhcj
z2rKtVyazRhF+vnS23pyGvJdF7wXRTOu+egqd1XE0KV3tHKkx4mAr8NxdZmPmkCN
vIQq/3PRVRnjZqbky867jRRv04fK28SA/j0zfUn+MpERGnUp/2y9b6keM7kIsHi/
5Mo=
=vd/6
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.