ietf-smtp
[Top] [All Lists]

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