RealPlayer ActiveX (ierpplug.dll) Playlist Handling Buffer Overflow - Nessus

High   Plugin ID: 27522

This page contains detailed information about the RealPlayer ActiveX (ierpplug.dll) Playlist Handling Buffer Overflow Nessus plugin including available exploits and PoCs found on GitHub, in Metasploit or Exploit-DB for verifying of this vulnerability.

Plugin Overview


ID: 27522
Name: RealPlayer ActiveX (ierpplug.dll) Playlist Handling Buffer Overflow
Filename: realplayer_playlist_handling_overflow.nasl
Vulnerability Published: N/A
This Plugin Published: 2007-10-23
Last Modification Time: 2018-07-27
Plugin Version: 1.24
Plugin Type: local
Plugin Family: Windows
Dependencies: realplayer_detect.nasl, smb_enum_services.nasl, smb_hotfixes.nasl
Required KB Items [?]: SMB/RealPlayer/Path, SMB/RealPlayer/Product, SMB/Registry/Enumerated

Vulnerability Information


Severity: High
Vulnerability Published: N/A
Patch Published: N/A
CVE [?]: CVE-2007-5601
CPE [?]: cpe:/a:realnetworks:realplayer
Exploited by Malware: True

Synopsis

The remote Windows host contains an application that is affected by a buffer overflow vulnerability.

Description

The version of RealPlayer installed on the remote Windows host contains signedness error in its 'MPAMedia.dll' library that can be exploited via an ActiveX control when handling playlist names to cause a stack-based buffer overflow. A remote attacker may be able to exploit this issue to execute arbitrary code subject to the user's privileges on the affected host.

Solution

Upgrade to RealPlayer 10.5 / 11 beta and apply the patch referenced in the vendor advisory above.

Public Exploits


Target Network Port(s): 139, 445
Target Asset(s): N/A
Exploit Available: True (Metasploit Framework, Exploit-DB, Immunity Canvas, Core Impact)
Exploit Ease: Exploits are available

Here's the list of publicly known exploits and PoCs for verifying the RealPlayer ActiveX (ierpplug.dll) Playlist Handling Buffer Overflow vulnerability:

  1. Metasploit: exploit/windows/browser/realplayer_import
    [RealPlayer ierpplug.dll ActiveX Control Playlist Name Buffer Overflow]
  2. Exploit-DB: exploits/windows/remote/16497.rb
    [EDB-16497: RealPlayer - 'ierpplug.dll' ActiveX Control Playlist Name Buffer Overflow (Metasploit)]
  3. Immunity Canvas: CANVAS

Before running any exploit against any system, make sure you are authorized by the owner of the target system(s) to perform such activity. In any other case, this would be considered as an illegal activity.

WARNING: Beware of using unverified exploits from sources such as GitHub or Exploit-DB. These exploits and PoCs could contain malware. For more information, see how to use exploits safely.

Risk Information


CVSS V2 Vector [?]: AV:N/AC:M/Au:N/C:C/I:C/A:C/E:H/RL:OF/RC:C
CVSS Base Score:9.3 (High)
Impact Subscore:10.0
Exploitability Subscore:8.6
CVSS Temporal Score:8.1 (High)
CVSS Environmental Score:NA (None)
Modified Impact Subscore:NA
Overall CVSS Score:8.1 (High)

Go back to menu.

Plugin Source


This is the realplayer_playlist_handling_overflow.nasl nessus plugin source code. This script is Copyright (C) 2007-2018 Tenable Network Security, Inc.

#
# (C) Tenable Network Security, Inc.
#

include("compat.inc");

if (description)
{
  script_id(27522);
  script_version("1.24");
  script_cvs_date("Date: 2018/07/27 12:15:51");

  script_cve_id("CVE-2007-5601");
  script_bugtraq_id(26130);
  script_xref(name:"CERT", value:"871673");

  script_name(english:"RealPlayer ActiveX (ierpplug.dll) Playlist Handling Buffer Overflow");
  script_summary(english:"Checks version of MPAMedia.dll");

  script_set_attribute(attribute:"synopsis", value:
"The remote Windows host contains an application that is affected by a
buffer overflow vulnerability.");
  script_set_attribute(attribute:"description", value:
"The version of RealPlayer installed on the remote Windows host
contains signedness error in its 'MPAMedia.dll' library that can be
exploited via an ActiveX control when handling playlist names to cause
a stack-based buffer overflow. A remote attacker may be able to
exploit this issue to execute arbitrary code subject to the user's
privileges on the affected host.");
  script_set_attribute(attribute:"see_also", value:"http://service.real.com/realplayer/security/191007_player/en/");
  script_set_attribute(attribute:"solution", value:
"Upgrade to RealPlayer 10.5 / 11 beta and apply the patch referenced in
the vendor advisory above.");
  script_set_cvss_base_vector("CVSS2#AV:N/AC:M/Au:N/C:C/I:C/A:C");
  script_set_cvss_temporal_vector("CVSS2#E:H/RL:OF/RC:C");
  script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available");
  script_set_attribute(attribute:"exploit_available", value:"true");
  script_set_attribute(attribute:"exploit_framework_core", value:"true");
  script_set_attribute(attribute:"exploited_by_malware", value:"true");
  script_set_attribute(attribute:"metasploit_name", value:'RealPlayer ierpplug.dll ActiveX Control Playlist Name Buffer Overflow');
  script_set_attribute(attribute:"exploit_framework_metasploit", value:"true");
  script_set_attribute(attribute:"exploit_framework_canvas", value:"true");
  script_set_attribute(attribute:"canvas_package", value:'CANVAS');
  script_cwe_id(119);

  script_set_attribute(attribute:"plugin_publication_date", value:"2007/10/23");

  script_set_attribute(attribute:"plugin_type", value:"local");
  script_set_attribute(attribute:"cpe", value:"cpe:/a:realnetworks:realplayer");
  script_end_attributes();

  script_category(ACT_GATHER_INFO);
  script_family(english:"Windows");

  script_copyright(english:"This script is Copyright (C) 2007-2018 Tenable Network Security, Inc.");

  script_dependencies("realplayer_detect.nasl", "smb_enum_services.nasl", "smb_hotfixes.nasl");
  script_require_keys("SMB/RealPlayer/Product", "SMB/RealPlayer/Path", "SMB/Registry/Enumerated");
  script_require_ports(139, 445);

  exit(0);
}


include("audit.inc");
include("misc_func.inc");
include("global_settings.inc");
include("smb_func.inc");
include("smb_activex_func.inc");


if (!get_kb_item("SMB/Registry/Enumerated")) exit(1, "KB 'SMB/Registry/Enumerated' not set to TRUE.");


path = get_kb_item_or_exit("SMB/RealPlayer/Path");
prod = get_kb_item_or_exit("SMB/RealPlayer/Product");
if (prod != "RealPlayer") exit(0, "RealPlayer not installed.");


# Unless we're paranoid, make sure the kill bit is not set for the affected control.
clsid = "{FDC7A535-4070-4B92-A0EA-D9994BCC0DC5}";
if (report_paranoia < 2)
{
  killbit = FALSE;

  if (activex_init() != ACX_OK) exit(0);

  file = activex_get_filename(clsid:clsid);
  if (file) killbit = activex_get_killbit(clsid:clsid);
  activex_end();

  if (TRUE == killbit) exit(0);
}


# Connect to the appropriate share.
port    =  kb_smb_transport();
login   =  kb_smb_login();
pass    =  kb_smb_password();
domain  =  kb_smb_domain();

if(! smb_session_init()) audit(AUDIT_FN_FAIL, "smb_session_init");


# Check whether the affected DLL exists.
share = ereg_replace(pattern:"^([A-Za-z]):.*", replace:"\1$", string:path);
dll =  ereg_replace(pattern:"^[A-Za-z]:(.*)", replace:"\1\plugins\MPAMedia.dll", string:path);

rc = NetUseAdd(login:login, password:pass, domain:domain, share:share);
if (rc != 1)
{
  NetUseDel();
  audit(AUDIT_SHARE_FAIL,share);
}

fh = CreateFile(
  file:dll,
  desired_access:GENERIC_READ,
  file_attributes:FILE_ATTRIBUTE_NORMAL,
  share_mode:FILE_SHARE_READ,
  create_disposition:OPEN_EXISTING
);
ver = NULL;
if (!isnull(fh))
{
  ver = GetFileVersion(handle:fh);
  CloseFile(handle:fh);
}
NetUseDel();


# Check the version number.
if (!isnull(ver))
{
  fix = split("1.0.4.2840", sep:'.', keep:FALSE);
  for (i=0; i<max_index(fix); i++)
    fix[i] = int(fix[i]);

  for (i=0; i<max_index(ver); i++)
    if ((ver[i] < fix[i]))
    {
      version = string(ver[0], ".", ver[1], ".", ver[2], ".", ver[3]);
      report = string(
        "\n",
        "Version ", version, " of the affected DLL is installed on the remote host :\n",
        "\n",
        "  ", path, "\\plugins\\MPAMedia.dll\n"
      );
      if (report_paranoia < 2)
        report = string(
          report,
          "\n",
          "Moreover, the kill bit for the CLSID\n",
          clsid, " is not set so this vulnerability\n",
          "can be exploited remotely via Internet Explorer.\n"
        );
      else
        report = string(
          report,
          "\n",
          "Note, though, that Nessus did not check whether the kill bit was set\n",
          "for the CLSID associated with this vulnerability\n",
          "(", clsid, ") because of the Report Paranoia\n",
          "setting in effect when this scan was run.\n"
        );

      security_hole(port:port, extra:report);
      break;
    }
    else if (ver[i] > fix[i])
      break;
}

The latest version of this script can be found in these locations depending on your platform:

  • Linux / Unix:
    /opt/nessus/lib/nessus/plugins/realplayer_playlist_handling_overflow.nasl
  • Windows:
    C:\ProgramData\Tenable\Nessus\nessus\plugins\realplayer_playlist_handling_overflow.nasl
  • Mac OS X:
    /Library/Nessus/run/lib/nessus/plugins/realplayer_playlist_handling_overflow.nasl

Go back to menu.

How to Run


Here is how to run the RealPlayer ActiveX (ierpplug.dll) Playlist Handling Buffer Overflow as a standalone plugin via the Nessus web user interface (https://localhost:8834/):

  1. Click to start a New Scan.
  2. Select Advanced Scan.
  3. Navigate to the Plugins tab.
  4. On the top right corner click to Disable All plugins.
  5. On the left side table select Windows plugin family.
  6. On the right side table select RealPlayer ActiveX (ierpplug.dll) Playlist Handling Buffer Overflow plugin ID 27522.
  7. Specify the target on the Settings tab and click to Save the scan.
  8. Run the scan.

Here are a few examples of how to run the plugin in the command line. Note that the examples below demonstrate the usage on the Linux / Unix platform.

Basic usage:

/opt/nessus/bin/nasl realplayer_playlist_handling_overflow.nasl -t <IP/HOST>

Run the plugin with audit trail message on the console:

/opt/nessus/bin/nasl -a realplayer_playlist_handling_overflow.nasl -t <IP/HOST>

Run the plugin with trace script execution written to the console (useful for debugging):

/opt/nessus/bin/nasl -T - realplayer_playlist_handling_overflow.nasl -t <IP/HOST>

Run the plugin with using a state file for the target and updating it (useful for running multiple plugins on the target):

/opt/nessus/bin/nasl -K /tmp/state realplayer_playlist_handling_overflow.nasl -t <IP/HOST>

Go back to menu.

References


BID | SecurityFocus Bugtraq ID: CERT | Computer Emergency Response Team: CWE | Common Weakness Enumeration:
  • CWE-119 (Weakness) Improper Restriction of Operations within the Bounds of a Memory Buffer
See also: Similar and related Nessus plugins:
  • 48907 - RealPlayer for Windows < Build 12.0.0.879 Multiple Vulnerabilities
  • 53409 - RealPlayer for Windows < Build 12.0.1.647 Multiple Vulnerabilities
  • 55908 - RealPlayer for Windows < Build 12.0.1.666 Multiple Vulnerabilities
  • 59173 - RealPlayer for Windows < 15.0.4.53 Multiple Vulnerabilities
  • 63289 - RealPlayer for Windows < 16.0.0.282 Multiple Vulnerabilities
  • 71772 - RealPlayer for Windows < 17.0.4.61 RMP Buffer Overflow
  • 21140 - RealPlayer for Windows < Build 6.0.12.1483 Multiple Vulnerabilities
  • 25573 - RealPlayer for Windows < Build 6.0.12.1578 Multiple Vulnerabilities
  • 27591 - RealPlayer for Windows < Build 6.0.12.1662 Multiple Vulnerabilities
  • 33744 - RealPlayer for Windows < Build 6.0.14.806 / 6.0.12.1675 Multiple Vulnerabilities
  • 50022 - RealPlayer Enterprise for Windows < Build 6.0.12.1823 Multiple Vulnerabilities
  • 17254 - RealPlayer Multiple Remote Overflows (2005-03-01)
  • 31418 - RealPlayer ActiveX (rmoc3260.dll) Console Property Memory Corruption Arbitrary Code Execution
  • 21402 - FreeBSD : linux-realplayer -- buffer overrun (25858c37-bdab-11da-b7d4-00123ffe8333)
  • 29866 - FreeBSD : linux-realplayer -- multiple vulnerabilities (f762ccbb-baed-11dc-a302-000102cc8983)
  • 21148 - GLSA-200603-24 : RealPlayer: Buffer overflow vulnerability
  • 26095 - GLSA-200709-05 : RealPlayer: Buffer overflow
  • 17268 - RHEL 4 : RealPlayer (RHSA-2005:265)
  • 17590 - RHEL 3 : realplayer (RHSA-2005:299)
  • 63831 - RHEL 3 / 4 : RealPlayer (RHSA-2006:0257)
  • 40707 - RHEL 3 / 4 / 5 : RealPlayer (RHSA-2007:0841)
  • 17300 - SUSE-SA:2005:014: RealPlayer

Version


This page has been produced using Nessus Professional 10.1.2 (#68) LINUX, Plugin set 202205072148.
Plugin file realplayer_playlist_handling_overflow.nasl version 1.24. For more plugins, visit the Nessus Plugin Library.

Go back to menu.