Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20260910010706.GA26807@openwall.com>
Date: Thu, 10 Sep 2026 03:07:06 +0200
From: Solar Designer <solar@...nwall.com>
To: oss-security@...ts.openwall.com
Subject: Postfix: SMTP smuggling, remote crash, and hardening fixes in 3.11.7 and related legacy releases

----- Forwarded message from Wietse Venema via Postfix-announce <postfix-announce@...tfix.org> -----

To: Postfix announce <postfix-announce@...tfix.org>
Date: Tue, 8 Sep 2026 07:56:36 -0400 (EDT)
CC: Postfix users <postfix-users@...tfix.org>
Subject: [pfx-ann] Postfix stable release 3.11.7 and legacy releases 3.10.14, 3.9.15,
From: Wietse Venema via Postfix-announce <postfix-announce@...tfix.org>
Reply-To: Wietse Venema <wietse@...cupine.org>

[An on-line version of this announcement will be available at
https://www.postfix.org/announcements/postfix-3.11.7.html]

This release addresses medium-impact problems that need to be fixed
as some enable remote DOS or SMTP smugggling.

The fixes below, and more, are also released in the unstable version
postfix-3.12-20260902.

In addition to updated releases for the supported Postfix versions
3.8-3.11, releases will also be available for the out-of-support
Postfix versions 3.5-3.7. NOTE: these do not include the patches
for out-of-support Postfix versions that have been issued for "large
SMTP inputs (June 2026)", and for "TLSA parsing (June 2026)". Those
patches still need to be applied.

These defects were found by "Qualys assisted by Claude Mythos
Preview", and by "OpenAI Security"; three date from 20 or more years
ago.

SMTP smuggling:

  * Bug (introduced: Postfix 3.9, date: 20240106) SMTP smuggling
    was still possible with smtpd_proxy_filter (disabled by default)
    when the after-filter SMTP server used the default policy
    settings "smtpd_forbid_bare_newline_exclusions = $mynetworks"
    and "smtpd_forbid_bare_newline = normalize". Reported by OpenAI
    Security. Fix by Wietse.

    As suggested by OpenAI Security, eliminate stray CR characters
    from the smtpd_proxy_filter input stream. The before-proxy-filter
    SMTP server already eliminated stray LF.

  * Bug (introduced: Postfix 3.11, date: 20250917): SMTP smuggling
    was possible with smtpd_proxy_filter (disabled by default) when
    the before-filter SMTP server added a "Require-TLS-ESMTP: yes"
    message header, due to implementation edge cases. Adding this
    header is enabled with the "requiretls_esmtp_header = yes"
    default setting. Reported by OpenAI Security. Fix by Wietse.

Server crashes and panic()s:

  * Bug (defect introduced: Postfix 3.0, date: 20140707): null
    pointer read error after receiving MAIL FROM, RCPT TO, and VRFY
    with an UTF8 address but no SMTPUTF8 parameter. This requires
    "smtputf8_enable = yes" (the default) and "strict_smtputf8 =
    yes" (not default). With this, the SMTP server did an unnecessary
    MAIL FROM reset without RCPT TO reset. A crafted remote SMTP
    client could then send a DATA command and crash a Postfix SMTP
    server process with a null pointer read error. Reported by
    Wonyoung Jung (78ResearchLab AI).

Other bugs

  * Bug (defect introduced: Postfix 3.4, date: 20180303): the MySQL
    client setting "tls_verify_cert = yes" had no effect with Oracle
    MySQL 8 and later. Report and fix by OpenAI Security.

  * Bug (defect introduced: Postfix-beta, date: 19990119): the
    pipe(8) delivery agent deleted a command-line argument if the
    argument contained $user AND $user expanded to an empty string,
    breaking the positional order of arguments. This was a workaround
    for a problem that hopefully no longer exists. Reported by
    Qualys, assisted by Claude Mythos Preview.

  * Bug (defect introduced: Postfix 2.3, date: 20050323): the SMTP
    client enhanced status code parser could process stale data
    when a remote SMTP server sent a three-digit reply without other
    text. Reported by Qualys, assisted by Claude Mythos Preview.

TLS

  * Isolation: stamp Postfix SMTP server TLS session tickets with
    their master.cf service name. With this, an SMTP server defined
    in master.cf will no longer accept tickets issued by a different
    SMTP server defined in the same master.cf file. Fix by OpenAI
    security.

Configuration safety

  * The postmap and postalias commands now log a warning when
    creating a root-owned database file in a directory that is not
    owned by root. They log that the database source file, indexed
    file(s), and parent directory should have the same owner, to
    prevent a privilege-escalation attack. Problem reported by
    OpenAI Security, remediation strategy (don't break production
    deployment) by Wietse.

Read after free, memory over-read

  * Bug (introduced: Postfix 2.3, date: 20060629): a malicious
    Milter or attacker-in-the-middle could trigger a null-terminated
    heap memory overread in the SMTP daemon while formatting a
    malformed multiline response. Fix from OpenAI Security adopted
    with minor changes.

  * Bug (defect introduced: Postfix 3.0, date: 20141117): in the
     postqueue command don't free() text before logging a fatal error
    message. Reported by Qualys, assisted by Claude Mythos Preview.

  * Code hygiene: in the SMTP client protocol engine, evaluate a
    RETURN() macro argument before freeing resources. Reported by
    Qualys, assisted by Claude Mythos Preview.

Code hardening (defense in depth, prevention)

  * (Postfix 3.11) Hardening: in the non-BerkeleyDB migration
    service, delay the decision between running postmap or postalias
    until after the database file/directory owner/permission checks.
    The benefit from making the decision early (better error messages)
    was not worth the risk. Qualys, assisted by Claude Mythos
    Preview.

  * (Postfix-3.11) Hardened the database parent directory permission
    checks for automatic re-indexing with the non-Berkeley-DB
    migration service.

  * Hardening command-line email submission: the postdrop command
    now disallows null and line-break characters in queue file
    envelope records (line-break characters in non-envelope queue
    file records are already neutralized by default with
    "cleanup_replace_stray_cr_lf = yes").

    The new constraint not only eliminates line-break injection
    into local mailbox files as reported by OpenAI Security, but
    also prevents other forms of misuse. Later, this constraint may
    be moved into the Postfix core. Fix by Wietse.

  * Shut up nagging from multiple AIs and harden the virtual delivery
    agent against an evil (LDAP or SQL) database.

  * Code hygiene: myrealloc(ptr, 0) still resulted in a panic.
    Reported by Qualys, assisted by Claude Mythos Preview. Also
    adopt a mystrndup() fix from Postfix 3.12.

Other:

  * Portability: OpenBSD does not define NS_INT16SZ. Brad Smith.

You can find the updated Postfix source code on the mirrors
listed at https://www.postfix.org/.

	Wietse
_______________________________________________
Postfix-announce mailing list -- postfix-announce@...tfix.org
To unsubscribe send an email to postfix-announce-leave@...tfix.org

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

Powered by blists - more mailing lists

Please check out the Open Source Software Security Wiki, which is counterpart to this mailing list.

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.