Package: release.debian.org
Severity: normal
Tags: buster
User: release.debian....@packages.debian.org
Usertags: pu

This is similar to #1003261 for bullseye, although there are fewer
Debian specific changes because most weren't applicable to or would have
been more invasive for buster.

I've put together my usual postfix post-release update.  Because I'm
behind, it's rather larger than usual.  Also, a number of packaging bugs
that apply to buster have been recently fixed in Bookworm, so the low
risk changes there have been backported too.

The diff is rather large, so I don't include it in the original bug
report to increase the chances this makes it to the mailing list.

Also, as usual, I have this update ready to upload and running in
production locally.

Here is the debian/changelog entry for this update:

postfix (3.4.23-0+deb10u1) buster; urgency=medium

  [Scott Kitterman]

  * Refresh patches
  * Update d/p/70_postfix-check.diff to exclude makedefs.out from synlink
    check.  Closes: #926331
  * Do not override user set default_transport in postinst.  Closes: #988538
  * Remove left-over ca-certificates.crt file from postfix chroot.
    Closes: #991609
  * Add information about keeping resolv.conf up to date in the chroot with
    the resolvconf package.  Closes: #964762

  [Sergio Gelato]

  * Correct if-up.d to not error out if postfix can't send mail yet.
    Closes: #959864

  [Paride Legovini]

  * d/postfix.postinst: tolerate search domain with a leading dot.
    Closes: #991950

  [Wietse Venema]

  * 3.4.15
    - Bugfix (introduced: Postfix 3.0): minor memory leaks in the
      Postfix TLS library, found during tests. File: tls/tls_misc.c.

    - Bugfix (introduced: Postfix 3.0): 4kbyte per session memory
      leak in the Postfix TLS library, found during tests. File:
      tls/tls_misc.c.

    - Workaround for distros that override Postfix protocol
      settings in a system-wide OpenSSL configuration file, causing
      interoperability problems after an OS update. File:
      tls/tls_client.c, tls/tls_server.c.

  * 3.4.16
    - Bugfix (introduced: Postfix 3.4.15): part of a memory leak
      fix was backported to the wrong place. File: tls/tls_misc.c.

    - The Postfix 3.4.15 workaround did not explictly override
      the system-wide OpenSSL configuration of allowed TLS protocol
      versions, for sessions where the remote SMTP client sends
      SNI. It's better to be safe than sorry. File: tls/tls_server.c.

  * 3.4.17
    - Bugfix (introduced: Postfix 3.4, already fixed in Postfix
      3.6): tlsproxy(8) was using the wrong DANE macro for
      connections with DANE trust anchors or with non-DANE trust
      anchors (WTF: Thorsten Habich found this bug in the use
      case that has nothing to do with DANE). This resulted in a
      global certificate verify function pointer race, between
      TLS handshakes that use TLS trust achors and handshakes
      that use PKI. No memory was corrupted in the course of all
      this.  Viktor Dukhovni. File: tlsproxy/tlsproxy.c.

    - Cleanup: the posttls-finger '-X' option reported a false
      conflict with '-r'.  File: posttls-finger/posttls-finger.c.

  * 3.4.18
    - Bugfix (introduced: Postfix 2.0): smtp_sasl_mechanism_filter
      ignored table lookup errors, treating them as 'not found'.
      Found during Postfix 3.6 development. File: smtp/smtp_sasl_proto.c.

    - Bugfix (introduced: Postfix 2.3): when deleting a recipient
      with a milter, delete the recipient from the duplicate
      filter, so that the recipient can be added back. Backported
      from Postfix 3.6. Files: global/been_here.[hc],
      cleanup/cleanup_milter.c.

    - Bugfix (introduced: before Postfix alpha): the code that
      looks for Delivered-To: headers ignored headers longer than
      $line_length_limit. Backported from Postfix 3.6. File:
      global/delivered_hdr.c.

    - Bugfix (introduced: Postfix 2.8): save a copy of the
      postscreen_dnsbl_reply_map lookup result. This has no effect
      when the recommended texthash: look table is used, but it
      may avoid stale data with other lookup tables. File:
      postscreen/postscreen_dnsbl.c.

    - Bugfix (introduced: Postfix 2.2): after processing an
      XCCLIENT command, the smtps service was waiting for a TLS
      handshake. Found by Aki Tuomi. File: smtpd/smtpd.c.

    - Bugfix (introduced: Postfix 2.3): static maps did not free
      their casefolding buffer. File: util/dict_static.c.

  * 3.4.19
    - Feature: when a Postfix program makes a DNS query that
      requests DNSSEC validation (usually for Postfix DANE support)
      but the DNS response is not DNSSEC validated, Postfix will
      send a DNS query configured with the "dnssec_probe" parameter
      to determine if DNSSEC support is available, and logs a
      warning if it is not. By default, the probe has type "ns"
      and domain name ".". The probe is sent once per process
      lifetime. Files: dns/dns.h, dns/dns_lookup.c, dns/dns_sec.c,
      test_dns_lookup.c, global/mail_params.[hc], mantools/postlink.

    - The default "smtp_tls_dane_insecure_mx_policy = dane" was
      causing unnecessary dnssec_probe activity. The default is now
      "dane" when smtp_tls_security_level is "dane", otherwise it is
      "may". File: global/mail_params.h.

  * 3.4.20
    - Missing null pointer checks (introduced: Postfix 3.4) after
      an internal I/O error during the smtp(8) to tlsproxy(8)
      handshake. Found by Coverity, reported by Jaroslav Skarvada.
      Based on fix by Viktor Dukhovni. File: tls/tls_proxy_client_scan.c.

    - Null pointer bug (introduced: Postfix 3.0) and memory leak
      (introduced: Postfix 3.4) after an inline: table syntax
      error in main.cf or master.cf. Found by Coverity, reported
      by Jaroslav Skarvada. Based on fix by Viktor Dukhovni. File:
      util/dict_inline.c.

    - Incomplete null pointer check (introduced: Postfix 2.10)
      after truncated HaProxy version 1 handshake message. Found
      by Coverity, reported by Jaroslav Skarvada. Fix by Viktor
      Dukhovni. File: global/haproxy_srvr.c.

    - Missing null pointer check (introduced: Postfix alpha) after
      null argv[0] value. File: global/mail_task.c.

  * 3.4.21
    - Bugfix (introduced: Postfix 2.11): the command "postmap
      lmdb:/file/name" handled duplicate keys ungracefully,
      discarding entries stored up to and including the duplicate
      key, and causing a double free() call with lmdb versions
      0.9.17 and later. Reported by Adi Prasaja; double free()
      root cause analysis by Howard Chu. File: util/slmdb.c.

    - Typo (introduced: Postfix 3.4): silent_discard should be
      silent-discard. File: proto/BDAT_README.html.

    - Support for Postfix 3.6 compatibility_level syntax, to avoid
      fatal runtime errors when rolling back from Postfix 3.6 to
      an earlier supported version, or when sharing Postfix 3.6
      configuration files with an earlier supported Postfix
      version. File: global/mail_params.c.

  * 3.4.22
    - Bugfix (introduced: Postfix 3.4): the texthash: map
      implementation did not support "postmap -F" behavior.
      Reported by Christopher Gurnee, who also found the missing
      code in the postmap source. File: util/dict_thash.c.

    - Bugfix (introduced: 1999, Postfix 2.11) latent false "Result too
      large" (ERANGE) errors because an strtol() call had no 'errno
      = 0' statement before the call. Back-ported from Postfix 3.6.
      Files: postscreen/postscreen_tests.c, util/mac_expand.c.

    - Bugfix (introduced: Postfix 3.3): "null pointer read" error
      in the cleanup daemon when "header_from_format = standard"
      (the default as of Postfix 3.3) and email was submitted
      with /usr/sbin/sendmail without From: header, and an all-space
      full name was specified in 1) the password file, 2) with
      "sendmail -F", or 3) with the NAME environment variable.
      Found by Renaud Metrich. File: cleanup/cleanup_message.c.
      (Closes: #968057)

    - Bugfix (introduced: 1999): the Postfix SMTP server was
      sending all session transcripts to the error_notice_recipient,
      instead of sending transcripts of bounced mail to the
      bounce_notice_recipient. File: smtpd/smtpd_chat.c.

    - Bugfix (introduced: Postfix 2.4): false "too many reverse
      jump" warnings in the showq daemon. The loop detection code
      was comparing memory addresses instead of queue file names.
      It now properly compares strings. Reported by Mehmet Avcioglu.
      File: global/record.c.

  * 3.4.23
    - Bitrot: OpenSSL 3.x requires const. File: tls/tls_misc.c.

    - Bugfix (bug introduced: Postfix 2.10): postconf -x produced
      incorrect output, because different functions were implicitly
      sharing a buffer for intermediate results. Reported
      by raf, root cause analysis by Viktor Dukhovni. File:
      postconf/postconf_builtin.c.

    - Bugfix (problem introduced: Postfix 2.11): check_ccert_access
      worked as expected, but produced a spurious warning when
      Postfix was built without SASL support. Fix by Brad Barden.
      File: smtpd/smtpd_check.c.

    - Bugfix (introduced: Postfix 2.4): queue file corruption
      after a Milter (for example, MIMEDefang) made a request to
      replace the message body with a copy of that message body
      plus additional text (for example, a SpamAssassin report).

      The most likely impacts were a) the queue manager reporting
      a fatal error resulting in email delivery delays, or b) the
      queue manager reporting the corruption and moving the message
      to the corrupt queue for damaged messages.

      However, a determined adversary could craft an email message
      that would trigger the bug, and insert a content filter
      destination or a redirect email address into its queue file.
      Postfix would then deliver the message headers there, in
      most cases without delivering the message body. With enough
      experimentation, an attacker could make Postfix deliver
      both the message headers and body.

      The details of a successful attack depend on the Milter
      implementation, and on the Postfix and Milter configuration
      details; these can be determined remotely through
      experimentation.  Failed experiments may be detected when
      the queue manager terminates with a fatal error, or when
      the queue manager moves damaged files to the "corrupt" queue
      as evidence.

      Technical details: when Postfix executes a "replace body"
      Milter request it will reuse queue file storage that was
      used by the existing email message body. If the new body
      is larger, Postfix will append body content to the end of
      the queue file. The corruption happened when a Milter (for
      example, MIMEDefang) made a request to replace the body of
      a message with a new body that contained a copy of the
      original body plus some new text, and the original body
      contained a line longer than $line_length_limit bytes (for
      example, an image encoded in base64 without hard or soft
      line breaks). In queue files, Postfix stores a long text
      line as multiple records with up to $line_length_limit bytes
      each. Unfortunately, Postfix's "replace body" support did
      not account for the additional queue file space needed to
      store the second etc.  record headers. And thus, the last
      record(s) of a long text line could overwrite one or more
      queue file records immediately after the space that was
      previously occupied by the original message body.

      Problem report by BenoƮt Panizzon.

  * Fix duplicate bounce_notice_recipient entries in postconf output.
    Closes: #999694

  [Andreas Hasenack]

  * Fix autopkgtest so it works and uses python3

 -- Scott Kitterman <sc...@kitterman.com>  Fri, 07 Jan 2022 11:04:17 -0500

 Scott K

Reply via email to