Re: [ietf-smtp] MTS-STS validation when MX host points to a CNAME, violating RFC 2181 § 10.3
2021-03-31 19:09:40
You need properly read the quoted section that talks about MX target being a
CNAME.
In particular this sentence from RFC 5321, section 5.1:
Any other response, specifically including a value that will return a
CNAME record when queried, lies outside the scope of this Standard.
In other words “It is your problem if the target of the MX refers to a CNAME
and things break."
The MX records for n0.lt are NOT RFC compliant. The target points to a CNAME.
With regards to others delivering mail to, just because an implementation is
more liberal, it doesn’t make it correct. It’s a absolute pain in the butt
when the 900lb gorillas don’t reject erroneous configurations as then everyone
else is under pressure to work with those configurations. You get “But it works
with …”.
% dig n0.lt mx
;; BADCOOKIE, retrying.
; <<>> DiG 9.15.4] <<>> n0.lt mx
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48337
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 239ed73d712edd7d01000000606505ac5ca63d7a998dc694 (good)
;; QUESTION SECTION:
;n0.lt. IN MX
;; ANSWER SECTION:
n0.lt. 300 IN MX 10 mx.n0.lt.
;; Query time: 2009 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Apr 01 10:28:44 AEDT 2021
;; MSG SIZE rcvd: 81
% dig mx.n0.lt
;; BADCOOKIE, retrying.
; <<>> DiG 9.15.4 <<>> mx.n0.lt
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30179
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: e8e0c48edf143f7e01000000606505b6cad98ca2cff6ac04 (good)
;; QUESTION SECTION:
;mx.n0.lt. IN A
;; ANSWER SECTION:
mx.n0.lt. 290 IN CNAME n0.lt.
n0.lt. 300 IN A 188.166.32.32
;; Query time: 224 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Apr 01 10:28:54 AEDT 2021
;; MSG SIZE rcvd: 95
On 1 Apr 2021, at 08:44, Kristijonas Lukas Bukauskas
<kr=40n0(_dot_)lt(_at_)dmarc(_dot_)ietf(_dot_)org> wrote:
Hello,
I'm having an affair with one of the vendors as a sending MTA, honoring
MTA-STS (RFC 8461). Their response:
• Our TDS validation shows MX lookup for n0.lt returns n0.lt instead of
mx.n0.lt. It is consistent with what we are seeing with production.
remote server(451 4.4.8 MX hosts of 'n0.lt' failed MTA-STS validation.)'
3/24/2021 3:36:19 PM - Server at n0.lt (0.0.0.0) returned '450 4.4.317 Cannot
connect to remote server [Message=451 4.4.8 MX hosts of 'n0.lt' failed
MTA-STS validation.] [LastAttemptedServerName=n0.lt]
• We can confirm that customer is not RFC compliant with MX pointing to
a CNAME and we don't think it is worth to change the logic to accommodate
that.
• Customer does have an easy fix on their side, just to modify their
STS Policy to include n0.lt as one of the supported MX record.
My objections:
I'm familiar with a general prohibition, pursuant to RFC 2181 § 10.3, for MX
records to point to CNAMEs. Despite that, I do not believe that it should
affect MX host validation in accordance with RFC 8461 §4.1 when selecting a
target MX host, for the reasons of:
• RFC 2181 is an RFC on Clarifications to the DNS Specification, not
SMTP.
• Selecting an MX target host is regulated in a different RFC, namely
and specifically in RFC 5321 §5.1:
If MX records are present, but none of them are usable, this situation MUST
be reported as an error.<...> When a domain name associated with an MX RR
is looked up and the associated data field obtained, the data field of that
response MUST contain a domain name. That domain name, when queried, MUST
return at least one address record (e.g., A or AAAA RR) that gives the IP
address of the SMTP server to which the message should be directed. Any
other response, specifically including a value that will return a CNAME
record when queried, lies outside the scope of this Standard. The
prohibition on labels in the data that resolve to CNAMEs is discussed in
more detail in RFC 2181, Section 10.3 [38]
• Thus, the prohibition of CNAMEs is NOT an SMTP or MTA-STS issue. As
per the RFC 5321 §5.1, which is used to select an MX target host, pursuant
to RFC 8461 §4.1 (MX Host validation), vendors are NOT allowed to choose a
different host name (in my scenario, n0.lt instead of mx.n0.lt which is
found in MX record). The situation MUST be reported as an error, if none of
the found records are usuable. That MUST happened even if the target domain
has not deployed MTA-STS. And this doesn’t seem to be the case. When MTA-STS
is not deployed, Microsoft, as a sending MTA doesn’t return any errors.
• No major providers (including, but not limited to Gmail) nor publicly
available MTA-STS tests (including, but not limited to My Email
Communications Security Assessment (MECSA) by European Commission’s Joint
Research Center) doesn’t select n0.lt instead of mx.n0.lt which is found in
MX record nor does it show any errors, suggesting my interpretation of
different RFCs is most likely correct.
As advised by one of the authors of RFC 8461, I'm reaching out to the IETF
SMTP list for your opinions, namely if MTA-STS, in theory, should fail to
validate if an MX points to a CNAME.
Any insights would be much appreciated and thanked in advance. :)
--
Regards,
Kristijonas
_______________________________________________
ietf-smtp mailing list
ietf-smtp(_at_)ietf(_dot_)org
https://www.ietf.org/mailman/listinfo/ietf-smtp
--
Mark Andrews, ISC
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742 INTERNET: marka(_at_)isc(_dot_)org
_______________________________________________
ietf-smtp mailing list
ietf-smtp(_at_)ietf(_dot_)org
https://www.ietf.org/mailman/listinfo/ietf-smtp
|
|