+ panic (assertion failure and voluntary crash) while parsing
+ a TLSA reply with length 3. Found during code maintenance.
+ File: tls/tls_dane.c.
+
+ Reproduction:
+ =============
+
+ The problem happens when the Postfix SMTP client is configured
+ to use opportunistic or mandatory DANE authentication (this
+ is disabled by default); a destination domain publishes a
+ TLSA record with a length of three bytes; and the OS is
+ configured to use a resolver that passes such a TLSA record.
+ For example, a length-three TLSA record is blocked by BIND,
+ and by configurations that use systemd-resolved (the default
+ on many LINUX systems). It is passed by many other resolvers.
+
+ This bug enables an attack that is more potent than an
+ older Postfix 3.1 bug in TLSA reply handling (null pointer
+ read with zero-length TLSA, or undisclosed memory overread).
+
+ - An attack with a length-three TLSA reply does not depend
+ on smtp_dns_reply_filter configuration.
+
+ - An attack with a length-three TLSA reply propagates through
+ more resolvers than an attack with a length-zero TLSA reply.
+
+ Impact statement:
+ =================
+
+ SMTP client voluntary termination (crash) after an assertion
+ failure. This is a fail-safe mechanism.
+
+ The impact of crashes (voluntary or not) is easily overstated.
+ That said, crashes must be eliminated regardless of their
+ impact.
+
+ On systems that deliver fewer than one message per minute,
+ an SMTP client crash can result in a delay of up to one
+ minute for email delivery to other destination domains.
+
+ On systems with a larger traffic volume, the impact of an
+ SMTP client crash on deliveries to other destination domains
+ is minor because Postfix reuses SMTP client processes and
+ replaces a failed process within seconds (self-healing);
+ the practical impact is believed to be no worse than that
+ of an uncooperative receiver that tarpits SMTP connections
+ from Postfix to one or more destination domains under their
+ control (by replying within Postfix SMTP client read time
+ limits which are several minutes by default).