Msn Icon DOS on 2.6.5

Pierre Noguès pierre at meta-security.com
Wed Feb 17 07:23:24 EST 2010


Hello,

I discovered a low severity vulnerability which can lead to a remote dos of pidgin. This 
vulnerability can't be exploited to lead to a remote code execution. Tested on 2.6.5.

The vulnerability is located in slp.c here :

     msn_emoticon_msg(MsnCmdProc *cmdproc, MsnMessage *msg){

         //...
         tokens = g_strsplit(body_str, "\t", 10);
         //tokens can be null !

         //...
		if (tokens[tok] == NULL || tokens[tok + 1] == NULL) {
                 //ref NULL pointer => CRASH

When msg doesn't contain '\t' char in his body, g_strsplit return NULL, this NULL pointer is 
referenced in READ ACCESS in the for loop. That's why it crash.

Backtrace:
     #0  0x00007f54b6de3473 in msn_emoticon_msg () from /usr/lib/purple-2/libmsn.so
     #1  0x00007f54b6dcbb32 in msn_cmdproc_process_msg () from /usr/lib/purple-2/libmsn.so
     #2  0x00007f54b6de80e4 in ?? () from /usr/lib/purple-2/libmsn.so
     #3  0x00007f54b6de1e7c in msn_servconn_process_data () from /usr/lib/purple-2/libmsn.so
     #4  0x00007f54b6de2022 in ?? () from /usr/lib/purple-2/libmsn.so
     #5  0x000000000046661e in ?? ()
     #6  0x00007f54cae7820a in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
     #7  0x00007f54cae7b8e0 in ?? () from /usr/lib/libglib-2.0.so.0
     #8  0x00007f54cae7bdad in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
     #9  0x00007f54cc02abc7 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
     #10 0x000000000047dc83 in main ()

Solution:
Check if tokens isn't null before entering in the loop.

Reproduce the bug:
Just send a mime message with content-type "text/x-mms-emoticon" and no icon. It will crash.

Thanks you for providing this free software.

-- 
Pierre Noguès - Meta Security
Consultant en sécurité

http://meta-security.com
40 rue Albéric de Calonne - 80 000 Amiens


More information about the security mailing list