7637414 2001-12-07 21:26 +0000  /44 rader/ scott <smackenz@sdf.lonestar.org>
Sänt av: joel@lysator.liu.se
Importerad: 2001-12-08  00:27  av Brevbäraren
Extern mottagare: bugtraq@securityfocus.com
Externa svar till: smackenz@brad.ac.uk
Mottagare: Bugtraq (import) <20063>
Ärende: Crashing X
------------------------------------------------------------
From: scott <smackenz@sdf.lonestar.org>
To: bugtraq@securityfocus.com
Message-ID: <01120720451400.04541@mainframe>

I have discovered a little bug in K Desktop 2.1.2 that crashes your X
Server.

By using the konqueror web browser and inputting around 9000+ A's (or
whatever) into a search box (for instance www.yahoo.com's web search
box) -  this will crash your X environment.

I have successfully done it using 9000 A's on one search box
(crashing X  instantly),  then I used 90'000 and it also worked - but
without immediate  effect (took a few seconds).

It also sometimes seems to work by just pasting 900000 A's into a
search box  and before it even displays the A's X crashes.  (note: If
you want it to  display the A's before X crashes paste 9000, then as
soon as you click to  start the search - its bye bye X).

Sorry but I can only test it on KDE 2.1.2, because I have no other
systems  available right now.

By the way:

[smackenz@mainframe smackenz]$ uname -a  
Linux mainframe 2.4.2-2 #1 Sun Apr 8 20:41:30 EDT 2001 i686 unknown
(Rehat 7.1)
(KDE 2.1.2)
(this works in Gnome and KDE using with the konqueror web browser)

To test simply use a shell and type:

perl -e 'print "A" x 9000'

Then copy these, and paste them into a search form.

Also I tried this in netscape and it didn't work so it suggests its a 
konqueror error somewhere or other.

Cheers

Scott Mackenzie
(7637414) /scott <smackenz@sdf.lonestar.org>/(Ombruten)
Kommentar i text 7638185 av John Scimone <jscimone@cc.gatech.edu>
Kommentar i text 7638298 av Seth Arnold <sarnold@wirex.com>
Kommentar i text 7638321 av munehiro <munehiro@ferrara.linux.it>
7638185 2001-12-07 18:49 -0500  /60 rader/ John Scimone <jscimone@cc.gatech.edu>
Sänt av: joel@lysator.liu.se
Importerad: 2001-12-08  09:30  av Brevbäraren
Extern mottagare: bugtraq@securityfocus.com
Mottagare: Bugtraq (import) <20072>
Kommentar till text 7637414 av scott <smackenz@sdf.lonestar.org>
Ärende: Re: Crashing X
------------------------------------------------------------
From: John Scimone <jscimone@cc.gatech.edu>
To: bugtraq@securityfocus.com
Message-ID: <01120718493001.14355@ks40.eastnet.gatech.edu>

If this is true couldn't a malicious website simply set the initial
value of  the form then use javascript to submit it upon loading the
page causing the  clients X to crash?

ie.

<input type="text" value="(9000 A's)">

and have a body onload=document.forms[0].submit()?

John Scimone
CS Major @ Ga Tech


On Friday 07 December 2001 04:26 pm, you wrote:
> I have discovered a little bug in K Desktop 2.1.2 that crashes your X
> Server.
>
> By using the konqueror web browser and inputting around 9000+ A's (or
> whatever) into a search box (for instance www.yahoo.com's web search box) -
> this will crash your X environment.
>
> I have successfully done it using 9000 A's on one search box (crashing X
> instantly),  then I used 90'000 and it also worked - but without immediate
> effect (took a few seconds).
>
> It also sometimes seems to work by just pasting 900000 A's into a search
> box and before it even displays the A's X crashes.  (note: If you want it
> to display the A's before X crashes paste 9000, then as soon as you click
> to start the search - its bye bye X).
>
> Sorry but I can only test it on KDE 2.1.2, because I have no other systems
> available right now.
>
> By the way:
>
> [smackenz@mainframe smackenz]$ uname -a
> Linux mainframe 2.4.2-2 #1 Sun Apr 8 20:41:30 EDT 2001 i686 unknown
> (Rehat 7.1)
> (KDE 2.1.2)
> (this works in Gnome and KDE using with the konqueror web browser)
>
> To test simply use a shell and type:
>
> perl -e 'print "A" x 9000'
>
> Then copy these, and paste them into a search form.
>
> Also I tried this in netscape and it didn't work so it suggests its a
> konqueror error somewhere or other.
>
> Cheers
>
> Scott Mackenzie
(7638185) /John Scimone <jscimone@cc.gatech.edu>/(Ombruten)
7638298 2001-12-07 16:55 -0800  /30 rader/ Seth Arnold <sarnold@wirex.com>
Sänt av: joel@lysator.liu.se
Importerad: 2001-12-08  10:35  av Brevbäraren
Extern mottagare: bugtraq@securityfocus.com
Mottagare: Bugtraq (import) <20075>
Kommentar till text 7637414 av scott <smackenz@sdf.lonestar.org>
Ärende: Re: Crashing X
------------------------------------------------------------
From: Seth Arnold <sarnold@wirex.com>
To: bugtraq@securityfocus.com
Message-ID: <20011207165533.M7800@wirex.com>

On Fri, Dec 07, 2001 at 09:26:53PM +0000, scott wrote:
> I have discovered a little bug in K Desktop 2.1.2 that crashes your X Server.
[...]
> Also I tried this in netscape and it didn't work so it suggests its a 
> konqueror error somewhere or other.

Absolutely not. No X client should ever be able to cause the X server
to crash. (Same deal with compilers and input files .. no input file,
no matter how maliciously written, should ever cause a compiler to
segfault.) This is a bug in XFree86, and, luckily, a known
bug. Sadly, I don't recognize the fix on XFree86's security page.[1]

The vuln-dev Message-ID is <3B822F5F.99227A5F@snosoft.com>. I saw a
fix for it on September 16th, so I'm rather hoping XFree86 releases
newer than that have the fix integrated.

Cheers!


[1]: http://www.xfree86.org/security/

-- 
"In God we trust, all others we monitor."
 -- NSA, Intercept Operators's motto, 1970
(7638298) /Seth Arnold <sarnold@wirex.com>/(Ombruten)
Bilaga (application/pgp-signature) i text 7638299
Kommentar i text 7640147 av Matthieu Herrb <matthieu.herrb@laas.fr>
7638299 2001-12-07 16:55 -0800  /10 rader/ Seth Arnold <sarnold@wirex.com>
Importerad: 2001-12-08  10:35  av Brevbäraren
Extern mottagare: bugtraq@securityfocus.com
Mottagare: Bugtraq (import) <20076>
Bilaga (text/plain) till text 7638298
Ärende: Bilaga till: Re: Crashing X
------------------------------------------------------------
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iD8DBQE8EWUF1XMg6PgdEDQRAq/dAJ9p9re0mxhBLcRbvH2gbBiIoSrfzACgy023
Ff4eKBND9cT7Lf6bajkQMhs=
=AUtw
-----END PGP SIGNATURE-----
(7638299) /Seth Arnold <sarnold@wirex.com>/---------
7640147 2001-12-08 21:13 +0100  /83 rader/ Matthieu Herrb <matthieu.herrb@laas.fr>
Sänt av: joel@lysator.liu.se
Importerad: 2001-12-08  21:44  av Brevbäraren
Extern mottagare: bugtraq@securityfocus.com
Externa svar till: herrb@xfree86.org
Mottagare: Bugtraq (import) <20085>
Kommentar till text 7638298 av Seth Arnold <sarnold@wirex.com>
Ärende: Re: Crashing X
------------------------------------------------------------
From: Matthieu Herrb <matthieu.herrb@laas.fr>
To: bugtraq@securityfocus.com
Message-ID: <15378.29792.674348.267895@laas.fr>

You wrote (in your message from Friday 7)
 > 
 > The vuln-dev Message-ID is <3B822F5F.99227A5F@snosoft.com>. I saw a fix
 > for it on September 16th, so I'm rather hoping XFree86 releases newer
 > than that have the fix integrated.
 > 

This has indeed been reported several time to XFree86 since last
september. 

The patch that is in current XFree86 and in the 4_1_0 branch is
appended below. I have reports that it does not fix all possible cases
of crashes, but I can not reproduce any crashes with this patch. 
May be someone can provide more details here (stack trace,...) ? 

				Matthieu Herrb

Index: fbglyph.c
===================================================================
RCS file: /xf86/xc/programs/Xserver/fb/fbglyph.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- fbglyph.c	2001/05/29 04:54:09	1.11
+++ fbglyph.c	2001/09/07 15:16:00	1.12
@@ -34,9 +34,19 @@
 	   int		height)
 {
     BoxRec  box;
+    BoxPtr  pExtents = REGION_EXTENTS (0, pRegion);
 
-    if (x + width < 0) return FALSE;
-    if (y + height < 0) return FALSE;
+    /*
+     * Check extents by hand to avoid 16 bit overflows
+     */
+    if (x < (int) pExtents->x1) 
+	return FALSE;
+    if ((int) pExtents->x2 < x + width) 
+	return FALSE;
+    if (y < (int) pExtents->y1)
+	return FALSE;
+    if ((int) pExtents->y2 < y + height)
+	return FALSE;
     box.x1 = x;
     box.x2 = x + width;
     box.y1 = y;
@@ -261,10 +271,10 @@
 			      FbBits,
 			      int,
 			      int);
-    FbBits	    *dst;
-    FbStride	    dstStride;
-    int		    dstBpp;
-    int		    dstXoff, dstYoff;
+    FbBits	    *dst = 0;
+    FbStride	    dstStride = 0;
+    int		    dstBpp = 0;
+    int		    dstXoff = 0, dstYoff = 0;
     
     glyph = 0;
     if (pGC->fillStyle == FillSolid && pPriv->and == 0)
@@ -352,10 +362,10 @@
 			      FbBits,
 			      int,
 			      int);
-    FbBits	    *dst;
-    FbStride	    dstStride;
-    int		    dstBpp;
-    int		    dstXoff, dstYoff;
+    FbBits	    *dst = 0;
+    FbStride	    dstStride = 0;
+    int		    dstBpp = 0;
+    int		    dstXoff = 0, dstYoff = 0;
     
     glyph = 0;
     if (pPriv->and == 0)
(7640147) /Matthieu Herrb <matthieu.herrb@laas.fr>/-
7638321 2001-12-08 01:41 +0100  /29 rader/ munehiro <munehiro@ferrara.linux.it>
Sänt av: joel@lysator.liu.se
Importerad: 2001-12-08  10:54  av Brevbäraren
Extern mottagare: smackenz@brad.ac.uk
Extern kopiemottagare: bugtraq@securityfocus.com
Mottagare: Bugtraq (import) <20081>
Kommentar till text 7637414 av scott <smackenz@sdf.lonestar.org>
Ärende: Re: Crashing X
------------------------------------------------------------
From: munehiro <munehiro@ferrara.linux.it>
To: smackenz@brad.ac.uk
Cc: bugtraq@securityfocus.com
Message-ID: <20011208014109.A31864@ferrara.linux.it>

On Fri, Dec 07, 2001 at 09:26:53PM +0000, scott wrote:
> I have discovered a little bug in K Desktop 2.1.2 that crashes your X Server.
> 
> By using the konqueror web browser and inputting around 9000+ A's (or 
> whatever) into a search box (for instance www.yahoo.com's web search box) - 
> this will crash your X environment.
> 

i reported this problem some month ago to the kde team. They
suggested me to report the issue to the XFree development team. I did
it but i never obtained a reply. Probably the problem was fixed in
the while.



-- 
------------------------------------------------------------

<munehiro> yeah... got a working sshd on an ipaq
<munehiro> wearable security
<munehiro> like a condom

------------------------------------------------------------
(7638321) /munehiro <munehiro@ferrara.linux.it>/(Ombruten)
7649650 1903-12-31 19:18 -0459  /155 rader/ KF <dotslash@snosoft.com>
Sänt av: joel@lysator.liu.se
Importerad: 2001-12-10  21:13  av Brevbäraren
Extern mottagare: John Scimone <jscimone@cc.gatech.edu>
Extern kopiemottagare: bugtraq@securityfocus.com
Mottagare: Bugtraq (import) <20086>
Kommentar till text 7638185 av John Scimone <jscimone@cc.gatech.edu>
Ärende: Re: Crashing X
------------------------------------------------------------
From: KF <dotslash@snosoft.com>
To: John Scimone <jscimone@cc.gatech.edu>
Cc: bugtraq@securityfocus.com
Message-ID: <83DA53CF.90102@snosoft.com>

I reported a similar issue several months ago... I was seeing X crash 
via xterm -title `perl -e 'print "A" x 9000'`
and also with html web pages with long title tags... Heres some strace 
snippits. I am on a ppc linux box Mandrake 8.0

root 1927 1389 3 12:17 ? 00:00:03 /etc/X11/X -deferglyphs 16 -auth

[root@ibook root]# strace -o Xdebug.txt -ivfp 1715
1715  [0fea59dc] writev(11, 
[{"\26\0)T\0@\2(\0@\2(\0\0\0\0\0\0\0\0\0\205\0\26\0\0\0\f"..., 224}, 
{"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 6000}], 2) 
= 6224
1715 [0fe987d8] read(11, 
"8\17\0\5\0@\1\222\0\10\0\10\0\0\177\377\0\0\0\0008@\0\4"..., 6624) = 6624
1715 [0fe9e980] brk(0x10617000) = 0x10617000
1715 [0fe987d8] read(11, 
"\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A\0A"..., 9988) = 9988
1715 [1031f26c] --- SIGSEGV (Segmentation fault) ---

1715 [0fe091b0] rt_sigaction(SIGSEGV, {SIG_IGN}, {0x1003d664, [SEGV], 
SA_RESTART}, 8) = 0
1715 [0fea577c] ipc_subcall(0, 0, 0, 0x30848000) = 0
1715 [0fe987e8] write(2, "\nFatal server error:\n", 21) = 21



This was a bit earlier on in the strace
1715 [0fe987d8] read(11, 
"\24\0\0\6\2\0\0\16\0\0\0017\0\0\1\'\0\0\0\0\0\0\10\0", 6624) = 24
1715 [0fea59dc] writev(11, [{"\1\10)\26\0\0\10\0\0\0\1\'\0\0\3(\0\0 
\0\0\0\0\0\177\377"..., 32}, {"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 
8192}], 2) = 8224
1715 [0fe987d8] read(11, 
"\24\0\0\6\2\0\0\16\0\0\1;\0\0\0\4\0\0\0\0\0\0\10\0", 6624) = 24

And before that
1715 [0fe987d8] read(11, 
"\24\0\0\6\2\0\0\16\0\0\0\'\0\0\0\37\0\0\0\0\0\0 \0", 6624) = 24
1715 [0fea59dc] writev(11, 
[{"\1\10)\v\0\0\10\312\0\0\0\37\0\0\0\0\0\0#(\0\0\0\0\177"..., 32}, 
{"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 9000}], 2) = 9032
1715 [0fea59dc] --- SIGALRM (Alarm clock) ---

and before that
1715 [0fe987d8] read(11, 
"\24\0\0\6\2\0\0\16\0\0\0017\0\0\1\'\0\0\0\0\0\0\10\0", 6624) = 24
1715 [0fea59dc] writev(11, [{"\1\10)\6\0\0\10\0\0\0\1\'\0\0\3(\0\0 
\0\0\0\0\0\177\377"..., 32}, {"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 
8192}], 2) = 8224

Then this is mme running xterm in the VERY begining.
1715 [0fe987d8] read(16, 
"\24\0\0\6\2\0\0\16\0\0\0\"\0\0\0\37\0\0\0\0\0\0\'\20", 4096) = 24
1715 [0fea59dc] writev(16, 
[{"\1\10\20\315\0\0\10\316\0\0\0\37\0\0\0\0\0\0#6\0\0\0\0"..., 32}, 
{"xterm\0-title\0AAAAAAAAAAAAAAAAAAA"..., 9014}, {"\0\0", 2}], 3) = 9048
BBBBBB


these are the X processes running root 1389 1 0 12:13 ? 00:00:00 kdm
root 1927 1389 1 12:17 ? 00:00:08 /etc/X11/X -deferglyphs 16 -auth
/var/lib/kdm/authfiles/A:0-KE8CBg root 1928 1389 0 12:17 ? 00:00:00
-:0 root 1945 1928 0 12:17 ? 00:00:00 /bin/sh /usr/bin/startkde root
2027 1 0 12:17 ? 00:00:00 kdeinit: dcopserver --nosid root 2030 1 0
12:17 ? 00:00:00 kdeinit: klauncher root 2032 1 0 12:17 ? 00:00:00
kdeinit: kded root 2038 1 0 12:17 ? 00:00:00 kdeinit: kxmlrpcd root
2041 1 0 12:17 ? 00:00:00 /usr/bin/artsd -F 5 -S 4096 -b 8 -s 1 -m
artsmessage -l 3 -f root 2046 1 0 12:18 ? 00:00:00 kdeinit:
Running...  root 2056 1 0 12:18 ? 00:00:00 knotify root 2057 1945 0
12:18 ? 00:00:00 ksmserver --restore root 2058 2046 0 12:18 ?
00:00:00 kdeinit: kwin root 2060 1 0 12:18 ? 00:00:01 kdeinit:
kdesktop root 2062 1 0 12:18 ? 00:00:01 kdeinit: kicker root 2066 1 0
12:18 ? 00:00:00 kdeinit: klipper -icon klipper -miniicon  klipper
root 2069 1 0 12:18 ? 00:00:00 kdeinit: khotkeys root 2070 1 0 12:18
? 00:00:00 kdeinit: kwrited root 2071 2046 1 12:18 ? 00:00:04
kdeinit: konsole -icon konsole.png -miniicon konsole.png
root 2072 1 0 12:18 ? 00:00:00 alarmd
root      2073  2070  0 12:18 pts/0    00:00:00 /bin/cat

-KF


John Scimone wrote:

> If this is true couldn't a malicious website simply set the initial value of 
> the form then use javascript to submit it upon loading the page causing the 
> clients X to crash?
> 
> ie.
> 
> <input type="text" value="(9000 A's)">
> 
> and have a body onload=document.forms[0].submit()?
> 
> John Scimone
> CS Major @ Ga Tech
> 
> 
> On Friday 07 December 2001 04:26 pm, you wrote:
> 
>> I have discovered a little bug in K Desktop 2.1.2 that crashes your X
>> Server.
>> 
>> By using the konqueror web browser and inputting around 9000+ A's (or
>> whatever) into a search box (for instance www.yahoo.com's web search box) -
>> this will crash your X environment.
>> 
>> I have successfully done it using 9000 A's on one search box (crashing X
>> instantly),  then I used 90'000 and it also worked - but without immediate
>> effect (took a few seconds).
>> 
>> It also sometimes seems to work by just pasting 900000 A's into a search
>> box and before it even displays the A's X crashes.  (note: If you want it
>> to display the A's before X crashes paste 9000, then as soon as you click
>> to start the search - its bye bye X).
>> 
>> Sorry but I can only test it on KDE 2.1.2, because I have no other systems
>> available right now.
>> 
>> By the way:
>> 
>> [smackenz@mainframe smackenz]$ uname -a
>> Linux mainframe 2.4.2-2 #1 Sun Apr 8 20:41:30 EDT 2001 i686 unknown
>> (Rehat 7.1)
>> (KDE 2.1.2)
>> (this works in Gnome and KDE using with the konqueror web browser)
>> 
>> To test simply use a shell and type:
>> 
>> perl -e 'print "A" x 9000'
>> 
>> Then copy these, and paste them into a search form.
>> 
>> Also I tried this in netscape and it didn't work so it suggests its a
>> konqueror error somewhere or other.
>> 
>> Cheers
>> 
>> Scott Mackenzie
>
(7649650) /KF <dotslash@snosoft.com>/-----(Ombruten)