<<< Date Index >>>     <<< Thread Index >>>

base64



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.

Is it dangerous? Sure. Consider antiviral software, which implements behaviour 
(1), and e-mail client, which implements behaviour (2). Attacker can insert 
padding character in the beginning of the encoded data, and antiviral software 
will think encoded data is empty. But e-mail client will think differentother 
way ;-) So, bypassing of content-filtering and antiviral protection is obvious 
subject for this issue.

How to solve this issue? I believe we should rewrite at least filtering systems 
to block malformed base64-encoded data because we don't know is it malicious or 
not. Otherwise, we can meet new powerful e-mail worm.

-----
"Will research information security for food!"