Postfix 1.1 patch 09 brings you the usual minor fixes that also appeared in recent snapshots, plus a change that closes an obscure relaying loophole with user@domain@postfix-style.virtual.domain addresses for virtual domains with @domain.name catch-all patterns. This change introduces a new parameter, with backwards compatible default settings. To allow Postfix to receive user@domain@domain addresses, specify "resolve_dequoted_address = no" in main.cf (quote the address localpart as per RFC 822, don't look for @ etc. inside the address localpart). Although this is technically more correct, it also opens opportunities for mail relay attacks when Postfix provides backup MX service for Sendmail systems. For the other minor changes, see the HISTORY file differences below. Prereq: "1.1.8" diff -cr --new-file /tmp/postfix-1.1.8/src/global/mail_version.h ./src/global/mail_version.h *** /tmp/postfix-1.1.8/src/global/mail_version.h Sat May 4 09:45:01 2002 --- ./src/global/mail_version.h Sun May 12 20:15:31 2002 *************** *** 21,34 **** * release date only, unless they include the same bugfix as a patch release. */ #define VAR_MAIL_VERSION "mail_version" ! #define DEF_MAIL_VERSION "1.1.8" extern char *var_mail_version; /* * Release date. */ #define VAR_MAIL_RELEASE "mail_release_date" ! #define DEF_MAIL_RELEASE "20020504" extern char *var_mail_release; /* LICENSE --- 21,34 ---- * release date only, unless they include the same bugfix as a patch release. */ #define VAR_MAIL_VERSION "mail_version" ! #define DEF_MAIL_VERSION "1.1.9" extern char *var_mail_version; /* * Release date. */ #define VAR_MAIL_RELEASE "mail_release_date" ! #define DEF_MAIL_RELEASE "20020513" extern char *var_mail_release; /* LICENSE diff -cr --new-file /tmp/postfix-1.1.8/HISTORY ./HISTORY *** /tmp/postfix-1.1.8/HISTORY Sat May 4 20:10:52 2002 --- ./HISTORY Mon May 13 16:10:41 2002 *************** *** 6249,6254 **** --- 6249,6306 ---- Portability: run-time test to avoid GDBM trouble. File: util/dict_dbm.c. + 20020508 + + Bugfix: close user@domain@postfix-style.virtual.domain + source routing relaying loophole involving postfix-style + virtual domains with @virtual.domain catch-all patterns. + Problem reported by Victor Duchovny. File: smtpd/smtpd_check.c. + + Bugfix: mail_addr_map() used the "wrong" @ character in + addresses with multiple @. Victor Duchovny. File: + global/mail_addr_map.c. + + Bugfix: for address localpart quoting, now quote @ as a + special character everywhere, except when resolving addresses. + Previously, the @ was nowhere quoted as a special character, + not even in SMTP commands. Files: global/quote_82[12]_local.c + and some clients. + + 20020509 + + Safety: don't allow an OK access rule lookup result for + user@domain@postfix-style.virtual.domain. Suggested by + Victor Duchovny, Morgan Stanley. File: smtpd/smtpd_check.c. + + Bugfix: quote unquoted address localparts that need quoting. + Files: global/tok822_parse.c, global/quote_82[12]_local.c. + + 20020512 + + Cleanup: the SMTP client logged and bounced the CNAME + expanded recipient address, and thereby complicated trouble + shooting. File: src/smtp_proto.c. + + Bugfix: the SMTP and LMTP clients bounced the quoted + recipient address, resulting in too much quoting in bounce + reports. Files: src/smtp_proto.c, lmtp/lmtp_proto.c. + + 20020513 + + Bugfix: the LDAP client used the "wrong" @ character in + addresses with multiple @. LaMont Jones, HP. File: + util/dict_ldap.c. + + Compatibility: forwards "postqueue -r" compatibility with + the additional queue file records that are stored by snapshot + 20050512. + + Cleanup: specify "resolve_dequoted_address = no" to prevent + Postfix from looking inside quotes for extra @ etc. characters + when resolving an address. This behavior is technically + more correct, but it opens a mail relay loophole with "user + @domain"@domain when relaying mail to a Sendmail system. + Open problems: Low: sendmail does not store null command-line recipients. diff -cr --new-file /tmp/postfix-1.1.8/RELEASE_NOTES ./RELEASE_NOTES *** /tmp/postfix-1.1.8/RELEASE_NOTES Tue Mar 26 16:11:22 2002 --- ./RELEASE_NOTES Mon May 13 16:11:12 2002 *************** *** 12,17 **** --- 12,39 ---- date. Snapshots change only the release date, unless they include the same bugfix as a patch release. + Incompatible changes with Postfix version 1.1.9 (released 20020513) + =================================================================== + + The Postfix SMTP server by default no longer accepts mail for + user@domain@postfix-style.virtual.domain, to close a relaying + loophole with postfix-style virtual domains that have @domain.name + catch-all patterns. + + To allow such addresses, specify "resolve_dequoted_address = no" + in main.cf (quote the address localpart as per RFC 822, and don't + look for @ or % or ! characters inside the address localpart). + However, this opens opportunities for obscure mail relay attacks + when Postfix provides backup MX service for Sendmail systems. + + The appearance of user@domain1@domain2 addresses has changed. In + mail headers, such addresses are now properly quoted as + "user@domain1"@domain2. As a side effect, this quoted form is now + also expected on the left-hand side of virtual and canonical lookup + tables, but only by some of the Postfix components. For now, it + is better not to use user@domain1@domain2 address forms on the + left-hand side of lookup tables. + Incompatible changes with Postfix version 1.1.6 (released 20020326) =================================================================== diff -cr --new-file /tmp/postfix-1.1.8/conf/sample-misc.cf ./conf/sample-misc.cf *** /tmp/postfix-1.1.8/conf/sample-misc.cf Mon Dec 31 12:35:15 2001 --- ./conf/sample-misc.cf Mon May 13 17:45:26 2002 *************** *** 362,367 **** --- 362,383 ---- #relocated_maps = hash:/etc/postfix/relocated relocated_maps = + # The resolve_dequoted_address parameter controls how Postfix + # resolves addresses. + # + # By default, the Postfix address resolver does not quote the address + # localpart as per RFC 822, so that additional @ or % or ! operators + # remain visible. This behavior is safe but it is also technically + # incorrect. + # + # If you specify "resolve_dequoted_address = no", then the Postfix + # resolver will not know about additional @ etc. operators in the + # address localpart. This opens opportunities for obscure mail relay + # attacks with user@domain@domain addresses when Postfix provides + # backup MX service for Sendmail systems. + # + resolve_dequoted_address = no + # The syslog_facility parameter controls where Postfix logging is # sent by the syslog daemon. Specify a logging facility as defined # in syslog.conf(5). The default logging facility is "mail". diff -cr --new-file /tmp/postfix-1.1.8/html/pickup.8.html ./html/pickup.8.html *** /tmp/postfix-1.1.8/html/pickup.8.html Sun Dec 30 15:46:33 2001 --- ./html/pickup.8.html Mon May 13 15:40:41 2002 *************** *** 1,5 ****
- PICKUP(8) PICKUP(8) NAME --- 1,4 ---- *************** *** 80,85 **** P.O. Box 704 Yorktown Heights, NY 10598, USA ! 1 !--- 79,83 ---- P.O. Box 704 Yorktown Heights, NY 10598, USA ! PICKUP(8)