Mailsploit: is there a problem with DMARC?

If you are looking for a yes/no answer, the answer is…NO. You can now relax and go grab a cup of coffee.

Randal Pinto
Postmasters
2 min readDec 6, 2017

--

But if you want to learn more, carry on reading…

Rather sensationalist articles recently posted in a number of media outlets claim DMARC can be bypassed due to shortcomings in the way that email clients handle the “From” header. However, after examining the evidence given I’d argue that it’s not a DMARC shortcoming, rather a matter of poor implementation by email clients.

If you compare this to the recent password bug with the Mac High Sierra OS I don’t think we saw anyone claiming that this meant the very concept of passwords is flawed. Instead people inherently understood that Apple had simply made a mistake when they implemented an update.

So what’s Mailsploit?

Mailsploit is a bug with some email clients where an attacker can trick a naively implemented email header parser into presenting the wrong information to a user.

The method used is not new and exploits like character encoding, cross-site-scripting (XSS) and null byte injections have all long been known by the software community and basic security checks in the development process of those email clients could have prevented this problem.

How does the exploit work?

The attacker encodes the “From” header using base64 or quoted-printable to include the spoofed email address, i.e.:

From: =?utf-8?b?cG90dXNAd2hpdGVob3VzZS5nb3Y=?==?utf-8?Q?=00?==?utf-8?b?cG90dXNAd2hpdGVob3VzZS5nb3Y=?=@mailsploit.com

The right way of parsing the string above would be to decode “cG90dXNAd2hpdGVob3VzZS5nb3Y=“ which results in “potus@whitehouse.gov” and “00” which is a null byte (represented as \0), resulting in the following email address:

potus@whitehouse.gov\0potus@whitehouse.gov@mailsploit.com

This email address is not valid per its RFC and should be presented as an error.

What actually happens is that some email clients will stop at the null byte and ignore all the rest, incorrectly displaying the email as “potus@whitehouse.gov”. Other clients will parse the whole thing but stop at the first string that looks like a valid email address, again “potus@whitehouse.gov”.

Is DMARC the one to blame?

No, if the parser was correctly implemented the email would have failed to deliver. As per the list published by Sabri Haddouche enterprise providers like Google or Microsoft Office 365 are not affected by it (and affected clients have either fixed it or are in the process of fixing) so this is no more that another software bug.

The DMARC protocol is innocent. It still remains effective.

--

--

Randal Pinto
Postmasters

Co-Founder & COO @redsift. Problem solver. Finisher.