mailing list archives
From: Bennett Todd <bet () rahul net>
Date: Mon, 22 Sep 2003 12:59:08 -0400
2003-09-22T08:49:59 "Ilya Teterin" :
Consider we decoding data which contains padding character ('=')
at the unexpected place. What we should do with such data? The
specification of base64 decoding does not tell us what we MUST or
even MAY do with such data... So, we can do anything we like to do:
1. threat padding character as end of the encoded data
2. ignore padding character
3. decode padding character as well as some other character from base64 alphabet
4. do something else ;-)
I have tested some popular implementations (such as email clients,
GNU utilities, RTL and other development's libraries). All items
(1)-(4) are actually present.
Another class of variation, producing different handling by
different programs, is weirdly wrapped base64 encoding.
There are many, many ambiguities in email processing. MIME is
positively filthy with them. What happens with various technically
invalid headers varies from processor to processor, charsets are
weird, some email clients do truly bizarre things with filenames in
MIME headers, etc.
A robust email malware scanning system positively has to
canonicalize all this before scanning, to a common and
straightforwad set of usage patterns that are handled the same by
all clients, and by the scanner itself. Some shops do this already;
I don't know of a robust open source component for this yet. But
that may just reflect my ignorance. Probably does:-).