7958492 2002-02-06 03:59 +0000  /63 rader/  <ciscosux@hushmail.com>
Sänt av: joel@lysator.liu.se
Importerad: 2002-02-06  19:25  av Brevbäraren
Extern mottagare: bugtraq@securityfocus.com
Mottagare: Bugtraq (import) <20843>
Ärende: -Possible- licq D.o.S
------------------------------------------------------------
From: <ciscosux@hushmail.com>
To: bugtraq@securityfocus.com
Message-ID: <20020206035946.30250.qmail@mail.securityfocus.com>



Greetings,
if you initiate a "icq chat" with someone on licq then 
proceed to send a constant stream of %d (I usually 
send close to 1000 chars) right after the other, 
nonstop it will cause their licq to seg fault. 

Tested on licq 1.0.4. 

(bugtraq usually formats my messages weird, so 
apologies if this doesn't look right.)

The end result after the flood is: 

Licq Segmentation Violation Detected.
Backtrace:
licq(licq_handle_sigsegv+0x73) [0x809171b]
/lib/libpthread.so.0(pthread_kill+0x170) [0x4002deb4]
/lib/libc.so.6(__libc_sigaction+0x1f8) [0x400ce928]
licq(PopChatEvent__12CChatManager+0xab) 
[0x808ab2b]
/usr/local/lib/licq/licq_qt-gui.so
(slot_chat__7ChatDlg+0xea6) [0x401fb68a]
/usr/lib/libqt.so.2
(activate_signal__7QObjectPCci+0x12a) 
[0x40448b7e]
/usr/lib/libqt.so.2
(activated__15QSocketNotifieri+0x28) [0x4049a0b8]
/usr/lib/libqt.so.2
(event__15QSocketNotifierP6QEvent+0x44) 
[0x4047b07c]
/usr/lib/libqt.so.2
(notify__12QApplicationP7QObjectP6QEvent+0x1ea) 
0x403f88a6]
/usr/lib/libqt.so.2
(qt_set_socket_handler__FiiP7QObjectb+0x4f2) 
[0x403c685a]
/usr/lib/libqt.so.2
(processNextEvent__12QApplicationb+0x6c7) 
[0x403c6f9b]
/usr/lib/libqt.so.2(enter_loop__12QApplication+0x3c) 
[0x403fa5f4]
/usr/lib/libqt.so.2(exec__12QApplication+0x2b) 
[0x403c68c7]
/usr/local/lib/licq/licq_qt-gui.so
(Run__8CLicqGuiP10CICQDaemon+0xf9) 
[0x402070ed]
/usr/local/lib/licq/licq_qt-gui.so(LP_Main+0x4d) 
[0x40205475]
/usr/local/lib/licq/licq_qt-gui.so(LP_Main_tep+0x21) 
[0x40205191]
/lib/libpthread.so.0(pthread_detach+0x519) 
[0x4002b065]
/lib/libc.so.6(__clone+0x3a) [0x4016d01a]
Attempting to generate core file.
syn@slackware:~#
(7958492) / <ciscosux@hushmail.com>/----------------

7969475 2002-02-08 09:08 -0600  /15 rader/ Jon Keating <jon@licq.org>
Sänt av: licq-devel-admin@lists.sourceforge.net
Importerad: 2002-02-08  16:12  av Brevbäraren
Extern mottagare: bugtraq@securityfocus.com
Extern kopiemottagare: licq-devel@licq.org
Extern kopiemottagare: ciscosux@hushmail.com
Mottagare: Licq-cvs (-) importmöte <4515>
Mottagare: Licq-devel (-) importmöte <3098>
Mottagare: Bugtraq (import) <20898>
    Sänt:     2002-02-08 18:06
Ärende: [Licq-devel] RE: -Possible- licq D.o.S
------------------------------------------------------------
Hello.

This crash occurred when a static buffer of 1024 bytes overflowed.
This is  fixed in the latest version of licq in the CVS and should be
in the next CVS  daily snapshot.  The CVS copy of licq uses the new
v8 protocol (otherwise  known as OSCAR) while the latest release does
not.  If for some reason you do  not want to use the CVS copy, use
the attached patch, and when prompted for  file to patch enter the
full path to icqd-chat.cpp (i.e.  /home/user/licq/src/icqd-chat.cpp)

It would be appreciated if the bug reporter would also contact licq-devel to 
let the developers of licq be aware of this problem and any future problems.

Jon
(7969475) /Jon Keating <jon@licq.org>/----(Ombruten)
Bilaga (text/x-c++) i text 7969476


7969476 2002-02-08 09:08 -0600  /15 rader/ Jon Keating <jon@licq.org>
Bilagans filnamn: "licq.icqd-chat.patch"
Importerad: 2002-02-08  16:12  av Brevbäraren
Extern mottagare: bugtraq@securityfocus.com
Extern kopiemottagare: licq-devel@licq.org
Extern kopiemottagare: ciscosux@hushmail.com
Mottagare: Licq-cvs (-) importmöte <4516>
Mottagare: Licq-devel (-) importmöte <3099>
Bilaga (text/plain) till text 7969475
Ärende: Bilaga (licq.icqd-chat.patch) till: [Licq-devel] RE: -Possible- licq D.o.S
------------------------------------------------------------
1247a1248,1253
>           if (strlen(u->linebuf) > 1000) // stop a little early
>           {
>              u->linebuf[1000] = '\0';
>              PushChatEvent(new CChatEvent(CHAT_NEWLINE, u, u->linebuf));
>              u->linebuf[0] = '\0';
>           }
1547a1548,1553
> 	    if (strlen(u->linebuf) > 1000) // stop a little early
> 	    {
> 		u->linebuf[1000] = '\0';
>                 PushChatEvent(new CChatEvent(CHAT_NEWLINE, u, u->linebuf));
> 		u->linebuf[0] = '\0';
> 	    }
(7969476) /Jon Keating <jon@licq.org>/--------------