]> git.ipfire.org Git - thirdparty/postfix.git/commitdiff
postfix-3.9-20240116
authorWietse Venema <wietse@porcupine.org>
Tue, 16 Jan 2024 05:00:00 +0000 (00:00 -0500)
committerViktor Dukhovni <ietf-dane@dukhovni.org>
Thu, 18 Jan 2024 08:29:58 +0000 (03:29 -0500)
12 files changed:
postfix/HISTORY
postfix/RELEASE_NOTES
postfix/WISHLIST
postfix/html/postconf.5.html
postfix/html/smtpd.8.html
postfix/man/man5/postconf.5
postfix/man/man8/smtpd.8
postfix/proto/postconf.proto
postfix/proto/stop.double-proto-html
postfix/src/global/mail_params.h
postfix/src/global/mail_version.h
postfix/src/smtpd/smtpd.c

index 68837521ba9d03d904d765c218caff58a977193a..cb4186ec14ad290eccd1d8c44a438aeb6807bc1a 100644 (file)
@@ -27716,9 +27716,7 @@ Apologies for any names omitted.
        newline handling has evolved. Files: global/smtp_stream.[hc],
        Files: global/smtp_stream.[hc], smtpd/smtpd.c.
 
-20240113
+20240116
 
-       Cleanup: updated the user interface. The smtpd_forbid_bare_newline
-       settings are now "require_std_end_of_data", "reject", and
-       "no", with "yes" as an alias for "require_std_end_of_data".
-       Files: smtpd/smtpd.c proto/postconf.proto.
+       Reverted some changes after postfix-3.9-20240112, and updated
+       documentation.
index a01f8b10807da999a5f0c4b9fbb314d4c0d88792..6beddc855da6498413ffbd79f43556df4dd9e0e1 100644 (file)
@@ -45,18 +45,18 @@ stray <CR> or <LF> characters.
 This feature applies to all email that Postfix locally or remotely
 sends out. It is not allowlisted based on client identity.
 
-Major changes with snapshot 20240113
+Major changes with snapshot 20240116
 ====================================
 
-This updates Postfix fixes for SMTP smuggling attacks, For background,
-see https://www.postfix.org/smtp-smuggling.html
+This updates Postfix fixes for inbound SMTP smuggling attacks. For
+background, see https://www.postfix.org/smtp-smuggling.html
 
 This will be back ported to Postfix 3.8.5, 3.7.10, 3.6.14, and 3.5.24.
 
 - Improved logging for rejected input (it now includes queue ID,
   helo, mail, and rcpt, if available).
 
-- The new default "smtpd_forbid_bare_newline = require_std_end_of_data"
+- The new default "smtpd_forbid_bare_newline = normalize"
   requires the standard End-of-DATA sequence <CR><LF>.<CR><LF>, and
   allows bare newlines from SMTP clients, maintaining more compatibility
   with infrastructure tools such as probers and surveys.
@@ -67,7 +67,7 @@ This will be back ported to Postfix 3.8.5, 3.7.10, 3.6.14, and 3.5.24.
   message that contains a bare newline. To disconnect the client,
   specify "smtpd_forbid_bare_newline_reject_code = 521".
 
-- The old setting "yes" has become an alias for "require_std_end_of_data".
+- The old setting "yes" has become an alias for "normalize".
 
 - The old setting "no" has not changed, and allows SMTP smuggling.
 
@@ -82,10 +82,10 @@ The recommended Postfix 3.9 settings (i.e. the defaults) are now:
     # This maintains compatibility with many legitimate SMTP client
     # applications that send a mix of standard and non-standard line
     # endings, but will fail to receive email from client implementations
-    # that do not send <CR><LF>.<CR><LF> Such clients need to be
+    # that do not send <CR><LF>.<CR><LF>. Such clients need to be
     # excluded with smtpd_forbid_bare_newline_exclusions.
     #
-    smtpd_forbid_bare_newline = require_std_end_of_data
+    smtpd_forbid_bare_newline = normalize
     smtpd_forbid_bare_newline_exclusions = $mynetworks
 
 Alternative settings:
@@ -96,7 +96,7 @@ Alternative settings:
     #
     # Exclude local SMTP clients from enforcement.
     #
-    # This will very likely cause problems for SMTP clients that send
+    # This will fail to receive email from SMTP clients that send any
     # non-standard line endings such as web applications, netcat, or
     # load balancer health checks. Such clients need to be excluded with
     # smtpd_forbid_bare_newline_exclusions.
index df5598fca2e02c6f9a318378d1466dcd8ea741a6..60e94df1de9ec602e88d76c7b276001579fba38e 100644 (file)
@@ -6,9 +6,6 @@ Wish list:
 
        Disable -DSNAPSHOT and -DNONPROD in makedefs.
 
-       Maybe add a pre-release check that stable releases cannot
-       have -DSNAPSHOT and -DNONPROD.
-
        postfix-install should mention makedefs.out.
 
        Remove .printfck directories, and remove printfck targets
index aef39eca1094264b7debbab39ebc14e36a21a6f4..ae0c01a356c2708e7125d20ef9cbe44855db7be4 100644 (file)
@@ -15956,7 +15956,7 @@ This feature is available in Postfix 2.0 and later.
 </DD>
 
 <DT><b><a name="smtpd_forbid_bare_newline">smtpd_forbid_bare_newline</a>
-(default: Postfix &ge; 3.9: require_std_end_of_data)</b></DT><DD>
+(default: Postfix &ge; 3.9: normalize)</b></DT><DD>
 
 <p> Reject or restrict input lines from an SMTP client that end in
 &lt;LF&gt; instead of the standard &lt;CR&gt;&lt;LF&gt;. Such line
@@ -15969,36 +15969,36 @@ SMTP smuggling</a>.  </p>
 
 <dl compact>
 
-<dt> <b>require_std_end_of_data</b> (default)</dt> <dd> Require the
-standard End-of-DATA sequence &lt;CR&gt;&lt;LF&gt;.&lt;CR&gt;&lt;LF&gt;.
-Otherwise, allow input lines ending in the non-standard &lt;LF&gt;,
-and process those as if the client sent inputs with the standard
-&lt;CR&gt;&lt;LF&gt;. <br> This maintains compatibility with many
-legitimate SMTP client applications that send a mix of standard and
-non-standard line endings, but will fail to receive email from
-client implementations that do not send
+<dt> <b>normalize</b> (default)</dt> <dd> Require the standard
+End-of-DATA sequence &lt;CR&gt;&lt;LF&gt;.&lt;CR&gt;&lt;LF&gt;.
+Otherwise, allow command or message content lines ending in the
+non-standard &lt;LF&gt;, and process them as if the client sent the
+standard &lt;CR&gt;&lt;LF&gt;. <br> <br> This maintains compatibility
+with many legitimate SMTP client applications that send a mix of
+standard and non-standard line endings, but will fail to receive
+email from client implementations that do not send
 &lt;CR&gt;&lt;LF&gt;.&lt;CR&gt;&lt;LF&gt;. Such clients need to be
-excluded with <b><a href="postconf.5.html#smtpd_forbid_bare_newline_exclusions">smtpd_forbid_bare_newline_exclusions</a></b>. </dd>
-
-<dt> <b>yes</b> </dt> <dd> Compatibility alias for
-<b>require_std_end_of_data</b>.  </dd>
-
-<dt> <b>reject</b> </dt> <dd> Reject a command or message content
-when a line ends in &lt;LF&gt;, log a "bare &lt;LF&gt; received"
-error, and reject the command or message content with
-$<b><a href="postconf.5.html#smtpd_forbid_bare_newline_reject_code">smtpd_forbid_bare_newline_reject_code</a></b>. Require that input
-lines end in &lt;CR&gt;&lt;LF&gt;, and require the standard End-of-DATA
-sequence &lt;CR&gt;&lt;LF&gt;.&lt;CR&gt;&lt;LF&gt;. <br> This will
-very likely cause problems for SMTP clients that send non-standard
+excluded with <a href="postconf.5.html#smtpd_forbid_bare_newline_exclusions">smtpd_forbid_bare_newline_exclusions</a>. </dd>
+
+<dt> <b>yes</b> </dt> <dd> Compatibility alias for <b>normalize</b>. </dd>
+
+<dt> <b>reject</b> </dt> <dd> Require the standard End-of-DATA
+sequence &lt;CR&gt;&lt;LF&gt;.&lt;CR&gt;&lt;LF&gt;. Reject a command
+or message content when a line ends in &lt;LF&gt;, log a "bare
+&lt;LF&gt; received" error, and reply with the SMTP status code in
+$<a href="postconf.5.html#smtpd_forbid_bare_newline_reject_code">smtpd_forbid_bare_newline_reject_code</a>. <br> <br> This will fail
+to receive email from SMTP clients that may send any non-standard
 line endings such as web applications, netcat, or load balancer
 health checks. Such clients need to be excluded with
-<b><a href="postconf.5.html#smtpd_forbid_bare_newline_exclusions">smtpd_forbid_bare_newline_exclusions</a></b>. </dd>
-
-<dt> <b>no</b> </dt> <dd> Treat a bare &lt;LF&gt; as if the client
-sent &lt;CR&gt;&lt;LF&gt;. This option is fully backwards compatible,
-but is not recommended for an Internet-facing SMTP server, because
-it is vulnerable to <a href="https://www.postfix.org/smtp-smuggling.html">
-SMTP smuggling</a>.  </dd>
+<a href="postconf.5.html#smtpd_forbid_bare_newline_exclusions">smtpd_forbid_bare_newline_exclusions</a>. </dd>
+
+<dt> <b>no</b> </dt> <dd> Do not require the standard End-of-DATA
+sequence &lt;CR&gt;&lt;LF&gt;.&lt;CR&gt;&lt;LF&gt;. Always process
+a bare &lt;LF&gt; as if the client sent &lt;CR&gt;&lt;LF&gt;. This
+option is fully backwards compatible, but is not recommended for
+an Internet-facing SMTP server, because it is vulnerable to <a
+href="https://www.postfix.org/smtp-smuggling.html"> SMTP smuggling</a>.
+</dd>
 
 </dl>
 
@@ -16018,7 +16018,7 @@ SMTP smuggling</a>.  </dd>
 # that do not send &lt;CR&gt;&lt;LF&gt;.&lt;CR&gt;&lt;LF&gt;. Such clients need to be
 # excluded with <a href="postconf.5.html#smtpd_forbid_bare_newline_exclusions">smtpd_forbid_bare_newline_exclusions</a>.
 #
-<a href="postconf.5.html#smtpd_forbid_bare_newline">smtpd_forbid_bare_newline</a> = require_std_end_of_data
+<a href="postconf.5.html#smtpd_forbid_bare_newline">smtpd_forbid_bare_newline</a> = normalize
 <a href="postconf.5.html#smtpd_forbid_bare_newline_exclusions">smtpd_forbid_bare_newline_exclusions</a> = $<a href="postconf.5.html#mynetworks">mynetworks</a>
 </pre>
 </blockquote>
@@ -16031,7 +16031,7 @@ SMTP smuggling</a>.  </dd>
 #
 # Exclude local SMTP clients from enforcement.
 #
-# This will very likely cause problems for SMTP clients that send
+# This will fail to receive email from SMTP clients that send any
 # non-standard line endings such as web applications, netcat, or
 # load balancer health checks. Such clients need to be excluded with
 # <a href="postconf.5.html#smtpd_forbid_bare_newline_exclusions">smtpd_forbid_bare_newline_exclusions</a>.
@@ -16043,9 +16043,8 @@ SMTP smuggling</a>.  </dd>
 
 <p> This feature with settings <b>yes</b> and <b>no</b> is available
 in Postfix 3.8.4, 3.7.9, 3.6.13, and 3.5.23. Additionally, the
-settings <b>reject</b>, and <b>require_std_end_of_data</b> are
-available with Postfix &ge; 3.9, 3.8.5, 3.7.10, 3.6.14, and 3.5.24.
-</p>
+settings <b>reject</b>, and <b>normalize</b> are available with
+Postfix &ge; 3.9, 3.8.5, 3.7.10, 3.6.14, and 3.5.24. </p>
 
 
 </DD>
@@ -16054,8 +16053,8 @@ available with Postfix &ge; 3.9, 3.8.5, 3.7.10, 3.6.14, and 3.5.24.
 (default: $<a href="postconf.5.html#mynetworks">mynetworks</a>)</b></DT><DD>
 
 <p> Exclude the specified clients from <a href="postconf.5.html#smtpd_forbid_bare_newline">smtpd_forbid_bare_newline</a>
-enforcement. It uses the same syntax and parent-domain matching
-behavior as <a href="postconf.5.html#mynetworks">mynetworks</a>. </p>
+enforcement. This setting uses the same syntax and parent-domain
+matching behavior as <a href="postconf.5.html#mynetworks">mynetworks</a>. </p>
 
 <p> This feature is available in Postfix &ge; 3.9, 3.8.4, 3.7.9,
 3.6.13, and 3.5.23. </p>
@@ -16067,8 +16066,8 @@ behavior as <a href="postconf.5.html#mynetworks">mynetworks</a>. </p>
 (default: 550)</b></DT><DD>
 
 <p>
-The numerical Postfix SMTP server response code when a request
-is rejected by the <b><a href="postconf.5.html#smtpd_forbid_bare_newline">smtpd_forbid_bare_newline</a></b> feature.
+The numerical Postfix SMTP server response code when rejecting a
+request with "<a href="postconf.5.html#smtpd_forbid_bare_newline">smtpd_forbid_bare_newline</a> = reject".
 Specify a 5XX status code (521 to disconnect).
 </p>
 
index 7ae79aff44c25703a6fffeb5bb1b6f4e2b22f932..85a8aeebfaa941c82b9e3440dd6782b12e090f42 100644 (file)
@@ -997,7 +997,7 @@ SMTPD(8)                                                              SMTPD(8)
 
        Available in Postfix 3.9, 3.8.4, 3.7.9, 3.6.13, 3.5.23 and later:
 
-       <b><a href="postconf.5.html#smtpd_forbid_bare_newline">smtpd_forbid_bare_newline</a> (Postfix</b> &gt;<b>= 3.9: require_std_end_of_data)</b>
+       <b><a href="postconf.5.html#smtpd_forbid_bare_newline">smtpd_forbid_bare_newline</a> (Postfix</b> &gt;<b>= 3.9: normalize)</b>
               Reject  or  restrict input lines from an SMTP client that end in
               &lt;LF&gt; instead of the standard &lt;CR&gt;&lt;LF&gt;.
 
@@ -1008,8 +1008,8 @@ SMTPD(8)                                                              SMTPD(8)
        Available in Postfix 3.9, 3.8.5, 3.7.10, 3.6.14, 3.5.24 and later:
 
        <b><a href="postconf.5.html#smtpd_forbid_bare_newline_reject_code">smtpd_forbid_bare_newline_reject_code</a> (550)</b>
-              The  numerical  Postfix SMTP server response code when a request
-              is rejected by the <b><a href="postconf.5.html#smtpd_forbid_bare_newline">smtpd_forbid_bare_newline</a></b> feature.
+              The numerical Postfix SMTP server response code when rejecting a
+              request with "<a href="postconf.5.html#smtpd_forbid_bare_newline">smtpd_forbid_bare_newline</a> = reject".
 
 <b>TARPIT CONTROLS</b>
        When a remote SMTP client makes errors, the  Postfix  SMTP  server  can
index 0c2bbf24df5086c4b7d9f856766dd4a3bdd02e72..3d3f670a626c2ad59510200f61ec5b4150502ef6 100644 (file)
@@ -11029,7 +11029,7 @@ The smtpd_expansion_filter value is not subject to Postfix configuration
 parameter $name expansion.
 .PP
 This feature is available in Postfix 2.0 and later.
-.SH smtpd_forbid_bare_newline (default: Postfix >= 3.9: require_std_end_of_data)
+.SH smtpd_forbid_bare_newline (default: Postfix >= 3.9: normalize)
 Reject or restrict input lines from an SMTP client that end in
 <LF> instead of the standard <CR><LF>. Such line
 endings are commonly allowed with UNIX\-based SMTP servers, but they
@@ -11038,44 +11038,44 @@ vulnerable to
 SMTP smuggling.
 .PP
 Specify one of the following values (case does not matter):
-.IP "\fBrequire_std_end_of_data\fR (default)"
-Require the
-standard End\-of\-DATA sequence <CR><LF>.<CR><LF>.
-Otherwise, allow input lines ending in the non\-standard <LF>,
-and process those as if the client sent inputs with the standard
-<CR><LF>.
-.br
-This maintains compatibility with many
-legitimate SMTP client applications that send a mix of standard and
-non\-standard line endings, but will fail to receive email from
-client implementations that do not send
+.IP "\fBnormalize\fR (default)"
+Require the standard
+End\-of\-DATA sequence <CR><LF>.<CR><LF>.
+Otherwise, allow command or message content lines ending in the
+non\-standard <LF>, and process them as if the client sent the
+standard <CR><LF>.
+.br
+.br
+This maintains compatibility
+with many legitimate SMTP client applications that send a mix of
+standard and non\-standard line endings, but will fail to receive
+email from client implementations that do not send
 <CR><LF>.<CR><LF>. Such clients need to be
-excluded with \fBsmtpd_forbid_bare_newline_exclusions\fR.
+excluded with smtpd_forbid_bare_newline_exclusions.
 .br
 .IP "\fByes\fR"
-Compatibility alias for
-\fBrequire_std_end_of_data\fR.
+Compatibility alias for \fBnormalize\fR.
 .br
 .IP "\fBreject\fR"
-Reject a command or message content
-when a line ends in <LF>, log a "bare <LF> received"
-error, and reject the command or message content with
-$\fBsmtpd_forbid_bare_newline_reject_code\fR. Require that input
-lines end in <CR><LF>, and require the standard End\-of\-DATA
-sequence <CR><LF>.<CR><LF>.
-.br
-This will
-very likely cause problems for SMTP clients that send non\-standard
+Require the standard End\-of\-DATA
+sequence <CR><LF>.<CR><LF>. Reject a command
+or message content when a line ends in <LF>, log a "bare
+<LF> received" error, and reply with the SMTP status code in
+$smtpd_forbid_bare_newline_reject_code.
+.br
+.br
+This will fail
+to receive email from SMTP clients that may send any non\-standard
 line endings such as web applications, netcat, or load balancer
 health checks. Such clients need to be excluded with
-\fBsmtpd_forbid_bare_newline_exclusions\fR.
+smtpd_forbid_bare_newline_exclusions.
 .br
 .IP "\fBno\fR"
-Treat a bare <LF> as if the client
-sent <CR><LF>. This option is fully backwards compatible,
-but is not recommended for an Internet\-facing SMTP server, because
-it is vulnerable to
-SMTP smuggling.
+Do not require the standard End\-of\-DATA
+sequence <CR><LF>.<CR><LF>. Always process
+a bare <LF> as if the client sent <CR><LF>. This
+option is fully backwards compatible, but is not recommended for
+an Internet\-facing SMTP server, because it is vulnerable to  SMTP smuggling.
 .br
 .br
 .PP
@@ -11097,7 +11097,7 @@ Examples:
 # that do not send <CR><LF>.<CR><LF>. Such clients need to be
 # excluded with smtpd_forbid_bare_newline_exclusions.
 #
-smtpd_forbid_bare_newline = require_std_end_of_data
+smtpd_forbid_bare_newline = normalize
 smtpd_forbid_bare_newline_exclusions = $mynetworks
 .fi
 .ad
@@ -11114,7 +11114,7 @@ smtpd_forbid_bare_newline_exclusions = $mynetworks
 #
 # Exclude local SMTP clients from enforcement.
 #
-# This will very likely cause problems for SMTP clients that send
+# This will fail to receive email from SMTP clients that send any
 # non\-standard line endings such as web applications, netcat, or
 # load balancer health checks. Such clients need to be excluded with
 # smtpd_forbid_bare_newline_exclusions.
@@ -11128,18 +11128,18 @@ smtpd_forbid_bare_newline_exclusions = $mynetworks
 .PP
 This feature with settings \fByes\fR and \fBno\fR is available
 in Postfix 3.8.4, 3.7.9, 3.6.13, and 3.5.23. Additionally, the
-settings \fBreject\fR, and \fBrequire_std_end_of_data\fR are
-available with Postfix >= 3.9, 3.8.5, 3.7.10, 3.6.14, and 3.5.24.
+settings \fBreject\fR, and \fBnormalize\fR are available with
+Postfix >= 3.9, 3.8.5, 3.7.10, 3.6.14, and 3.5.24.
 .SH smtpd_forbid_bare_newline_exclusions (default: $mynetworks)
 Exclude the specified clients from smtpd_forbid_bare_newline
-enforcement. It uses the same syntax and parent\-domain matching
-behavior as mynetworks.
+enforcement. This setting uses the same syntax and parent\-domain
+matching behavior as mynetworks.
 .PP
 This feature is available in Postfix >= 3.9, 3.8.4, 3.7.9,
 3.6.13, and 3.5.23.
 .SH smtpd_forbid_bare_newline_reject_code (default: 550)
-The numerical Postfix SMTP server response code when a request
-is rejected by the \fBsmtpd_forbid_bare_newline\fR feature.
+The numerical Postfix SMTP server response code when rejecting a
+request with "smtpd_forbid_bare_newline = reject".
 Specify a 5XX status code (521 to disconnect).
 .PP
 This feature is available in Postfix >= 3.9, 3.8.5, 3.7.10,
index a4d41939d3a37697d07667d554727d5ffe921031..4569f1fd6497f0ce9f642bf7b833f803ffed9598 100644 (file)
@@ -870,7 +870,7 @@ Disconnect remote SMTP clients that violate RFC 2920 (or 5321)
 command pipelining constraints.
 .PP
 Available in Postfix 3.9, 3.8.4, 3.7.9, 3.6.13, 3.5.23 and later:
-.IP "\fBsmtpd_forbid_bare_newline (Postfix >= 3.9: require_std_end_of_data)\fR"
+.IP "\fBsmtpd_forbid_bare_newline (Postfix >= 3.9: normalize)\fR"
 Reject or restrict input lines from an SMTP client that end in
 <LF> instead of the standard <CR><LF>.
 .IP "\fBsmtpd_forbid_bare_newline_exclusions ($mynetworks)\fR"
@@ -880,8 +880,8 @@ enforcement.
 Available in Postfix 3.9, 3.8.5, 3.7.10, 3.6.14, 3.5.24 and
 later:
 .IP "\fBsmtpd_forbid_bare_newline_reject_code (550)\fR"
-The numerical Postfix SMTP server response code when a request
-is rejected by the \fBsmtpd_forbid_bare_newline\fR feature.
+The numerical Postfix SMTP server response code when rejecting a
+request with "smtpd_forbid_bare_newline = reject".
 .SH "TARPIT CONTROLS"
 .na
 .nf
index 7e3cd8cee626f8bb31bf445cb5c4c677d8bd92b1..275dc318bb3fa61dbd6c4fcbbecef9adeed6fdc0 100644 (file)
@@ -19055,7 +19055,7 @@ MinProtocol = TLSv1
 <p> This feature is available in Postfix &ge; 3.9, 3.8.1, 3.7.6,
 3.6.10, and 3.5.20. </p>
 
-%PARAM smtpd_forbid_bare_newline Postfix &ge; 3.9: require_std_end_of_data
+%PARAM smtpd_forbid_bare_newline Postfix &ge; 3.9: normalize
 
 <p> Reject or restrict input lines from an SMTP client that end in
 &lt;LF&gt; instead of the standard &lt;CR&gt;&lt;LF&gt;. Such line
@@ -19068,36 +19068,36 @@ SMTP smuggling</a>.  </p>
 
 <dl compact>
 
-<dt> <b>require_std_end_of_data</b> (default)</dt> <dd> Require the
-standard End-of-DATA sequence &lt;CR&gt;&lt;LF&gt;.&lt;CR&gt;&lt;LF&gt;.
-Otherwise, allow input lines ending in the non-standard &lt;LF&gt;,
-and process those as if the client sent inputs with the standard
-&lt;CR&gt;&lt;LF&gt;. <br> This maintains compatibility with many
-legitimate SMTP client applications that send a mix of standard and
-non-standard line endings, but will fail to receive email from
-client implementations that do not send
+<dt> <b>normalize</b> (default)</dt> <dd> Require the standard
+End-of-DATA sequence &lt;CR&gt;&lt;LF&gt;.&lt;CR&gt;&lt;LF&gt;.
+Otherwise, allow command or message content lines ending in the
+non-standard &lt;LF&gt;, and process them as if the client sent the
+standard &lt;CR&gt;&lt;LF&gt;. <br> <br> This maintains compatibility
+with many legitimate SMTP client applications that send a mix of
+standard and non-standard line endings, but will fail to receive
+email from client implementations that do not send
 &lt;CR&gt;&lt;LF&gt;.&lt;CR&gt;&lt;LF&gt;. Such clients need to be
-excluded with <b>smtpd_forbid_bare_newline_exclusions</b>. </dd>
-
-<dt> <b>yes</b> </dt> <dd> Compatibility alias for
-<b>require_std_end_of_data</b>.  </dd>
-
-<dt> <b>reject</b> </dt> <dd> Reject a command or message content
-when a line ends in &lt;LF&gt;, log a "bare &lt;LF&gt; received"
-error, and reject the command or message content with
-$<b>smtpd_forbid_bare_newline_reject_code</b>. Require that input
-lines end in &lt;CR&gt;&lt;LF&gt;, and require the standard End-of-DATA
-sequence &lt;CR&gt;&lt;LF&gt;.&lt;CR&gt;&lt;LF&gt;. <br> This will
-very likely cause problems for SMTP clients that send non-standard
+excluded with smtpd_forbid_bare_newline_exclusions. </dd>
+
+<dt> <b>yes</b> </dt> <dd> Compatibility alias for <b>normalize</b>. </dd>
+
+<dt> <b>reject</b> </dt> <dd> Require the standard End-of-DATA
+sequence &lt;CR&gt;&lt;LF&gt;.&lt;CR&gt;&lt;LF&gt;. Reject a command
+or message content when a line ends in &lt;LF&gt;, log a "bare
+&lt;LF&gt; received" error, and reply with the SMTP status code in
+$smtpd_forbid_bare_newline_reject_code. <br> <br> This will fail
+to receive email from SMTP clients that may send any non-standard
 line endings such as web applications, netcat, or load balancer
 health checks. Such clients need to be excluded with
-<b>smtpd_forbid_bare_newline_exclusions</b>. </dd>
-
-<dt> <b>no</b> </dt> <dd> Treat a bare &lt;LF&gt; as if the client
-sent &lt;CR&gt;&lt;LF&gt;. This option is fully backwards compatible,
-but is not recommended for an Internet-facing SMTP server, because
-it is vulnerable to <a href="https://www.postfix.org/smtp-smuggling.html">
-SMTP smuggling</a>.  </dd>
+smtpd_forbid_bare_newline_exclusions. </dd>
+
+<dt> <b>no</b> </dt> <dd> Do not require the standard End-of-DATA
+sequence &lt;CR&gt;&lt;LF&gt;.&lt;CR&gt;&lt;LF&gt;. Always process
+a bare &lt;LF&gt; as if the client sent &lt;CR&gt;&lt;LF&gt;. This
+option is fully backwards compatible, but is not recommended for
+an Internet-facing SMTP server, because it is vulnerable to <a
+href="https://www.postfix.org/smtp-smuggling.html"> SMTP smuggling</a>.
+</dd>
 
 </dl>
 
@@ -19117,7 +19117,7 @@ SMTP smuggling</a>.  </dd>
 # that do not send &lt;CR&gt;&lt;LF&gt;.&lt;CR&gt;&lt;LF&gt;. Such clients need to be
 # excluded with smtpd_forbid_bare_newline_exclusions.
 #
-smtpd_forbid_bare_newline = require_std_end_of_data
+smtpd_forbid_bare_newline = normalize
 smtpd_forbid_bare_newline_exclusions = $mynetworks
 </pre>
 </blockquote>
@@ -19130,7 +19130,7 @@ smtpd_forbid_bare_newline_exclusions = $mynetworks
 #
 # Exclude local SMTP clients from enforcement.
 #
-# This will very likely cause problems for SMTP clients that send
+# This will fail to receive email from SMTP clients that send any
 # non-standard line endings such as web applications, netcat, or
 # load balancer health checks. Such clients need to be excluded with
 # smtpd_forbid_bare_newline_exclusions.
@@ -19142,15 +19142,14 @@ smtpd_forbid_bare_newline_exclusions = $mynetworks
 
 <p> This feature with settings <b>yes</b> and <b>no</b> is available
 in Postfix 3.8.4, 3.7.9, 3.6.13, and 3.5.23. Additionally, the
-settings <b>reject</b>, and <b>require_std_end_of_data</b> are
-available with Postfix &ge; 3.9, 3.8.5, 3.7.10, 3.6.14, and 3.5.24.
-</p>
+settings <b>reject</b>, and <b>normalize</b> are available with
+Postfix &ge; 3.9, 3.8.5, 3.7.10, 3.6.14, and 3.5.24. </p>
 
 %PARAM smtpd_forbid_bare_newline_exclusions $mynetworks
 
 <p> Exclude the specified clients from smtpd_forbid_bare_newline
-enforcement. It uses the same syntax and parent-domain matching 
-behavior as mynetworks. </p>
+enforcement. This setting uses the same syntax and parent-domain
+matching behavior as mynetworks. </p>
 
 <p> This feature is available in Postfix &ge; 3.9, 3.8.4, 3.7.9,
 3.6.13, and 3.5.23. </p>
@@ -19158,8 +19157,8 @@ behavior as mynetworks. </p>
 %PARAM smtpd_forbid_bare_newline_reject_code 550
 
 <p>
-The numerical Postfix SMTP server response code when a request
-is rejected by the <b>smtpd_forbid_bare_newline</b> feature.
+The numerical Postfix SMTP server response code when rejecting a
+request with "smtpd_forbid_bare_newline = reject".
 Specify a 5XX status code (521 to disconnect).
 </p>
 
index 78f8eed9da98816412952cac61f9e00458de6da8..a161f9a1b6db993905811ee9e4f454146cde9604 100644 (file)
@@ -345,3 +345,5 @@ query_filter mailacceptinggeneralid s maildrop maildrop maildrop owner cn root d
  dt b a name reject_unknown_sender_domain reject_unknown_sender_domain a b dt 
  dt b a name check_address_map check_address_map a i a href DATABASE_README html type table a i b dt 
  PARAM postscreen_dnsbl_max_ttl postscreen_dnsbl_ttl postscreen_dnsbl_ttl 1 h
+standard lt CR gt lt LF gt br br This maintains compatibility
+ smtpd_forbid_bare_newline_reject_code br br This will fail
index 62d6fb5b8e921cf770854913f64205a3777cdbe7..1f03b0b34e7db79dc42f7557b701864ccbee0d0c 100644 (file)
@@ -4306,7 +4306,7 @@ extern char *var_smtpd_dns_re_filter;
   * Backwards compatibility.
   */
 #define VAR_SMTPD_FORBID_BARE_LF       "smtpd_forbid_bare_newline"
-#define DEF_SMTPD_FORBID_BARE_LF       "require_std_end_of_data"
+#define DEF_SMTPD_FORBID_BARE_LF       "normalize"
 
 #define VAR_SMTPD_FORBID_BARE_LF_EXCL  "smtpd_forbid_bare_newline_exclusions"
 #define DEF_SMTPD_FORBID_BARE_LF_EXCL  "$" VAR_MYNETWORKS
index 8b6685d775fd094f1c125735d39cbc80005a5f91..d46c0f44d9f12737f43ffc9366948cdb57359cf9 100644 (file)
@@ -20,7 +20,7 @@
   * Patches change both the patchlevel and the release date. Snapshots have no
   * patchlevel; they change the release date only.
   */
-#define MAIL_RELEASE_DATE      "20240113"
+#define MAIL_RELEASE_DATE      "20240116"
 #define MAIL_VERSION_NUMBER    "3.9"
 
 #ifdef SNAPSHOT
index 3a4ff4dfbbb765e50bea221e1e0af45afd97fd31..f7aeb8799c23e0196fe5a3575be2d8bd30c0a08b 100644 (file)
 /*     command pipelining constraints.
 /* .PP
 /*     Available in Postfix 3.9, 3.8.4, 3.7.9, 3.6.13, 3.5.23 and later:
-/* .IP "\fBsmtpd_forbid_bare_newline (Postfix >= 3.9: require_std_end_of_data)\fR"
+/* .IP "\fBsmtpd_forbid_bare_newline (Postfix >= 3.9: normalize)\fR"
 /*     Reject or restrict input lines from an SMTP client that end in
 /*     <LF> instead of the standard <CR><LF>.
 /* .IP "\fBsmtpd_forbid_bare_newline_exclusions ($mynetworks)\fR"
 /*     Available in Postfix 3.9, 3.8.5, 3.7.10, 3.6.14, 3.5.24 and
 /*     later:
 /* .IP "\fBsmtpd_forbid_bare_newline_reject_code (550)\fR"
-/*     The numerical Postfix SMTP server response code when a request
-/*     is rejected by the \fBsmtpd_forbid_bare_newline\fR feature.
+/*     The numerical Postfix SMTP server response code when rejecting a
+/*     request with "smtpd_forbid_bare_newline = reject".
 /* TARPIT CONTROLS
 /* .ad
 /* .fi
@@ -1677,10 +1677,7 @@ int     smtpd_hfrom_format;
 #define IS_BARE_LF_REPLY_REJECT(m)     ((m) & BARE_LF_FLAG_REPLY_REJECT)
 
 static const NAME_CODE bare_lf_mask_table[] = {
-    "require_std_end_of_data", BARE_LF_FLAG_WANT_STD_EOD,      /* Default */
-#ifdef SNAPSHOT
-    "normalize", BARE_LF_FLAG_WANT_STD_EOD,    /* Migration aid */
-#endif
+    "normalize", BARE_LF_FLAG_WANT_STD_EOD,    /* Default */
     "yes", BARE_LF_FLAG_WANT_STD_EOD,  /* Migration aid */
     "reject", BARE_LF_FLAG_WANT_STD_EOD | BARE_LF_FLAG_REPLY_REJECT,
     "no", 0,