Tom Sawyer Software GET Extension Factory COM Object Instantiation Memory Corruption - Nessus

High   Plugin ID: 54990

This page contains detailed information about the Tom Sawyer Software GET Extension Factory COM Object Instantiation Memory Corruption Nessus plugin including available exploits and PoCs found on GitHub, in Metasploit or Exploit-DB for verifying of this vulnerability.

Plugin Overview


ID: 54990
Name: Tom Sawyer Software GET Extension Factory COM Object Instantiation Memory Corruption
Filename: tomsawyer_get_extension_factory_activex.nasl
Vulnerability Published: 2011-06-03
This Plugin Published: 2011-06-07
Last Modification Time: 2018-11-15
Plugin Version: 1.17
Plugin Type: local
Plugin Family: Windows
Dependencies: smb_hotfixes.nasl
Required KB Items [?]: SMB/Registry/Enumerated

Vulnerability Information


Severity: High
Vulnerability Published: 2011-06-03
Patch Published: 2011-06-03
CVE [?]: CVE-2011-2217
CPE [?]: N/A

Synopsis

The remote Windows host has a COM object that is affected by a memory corruption vulnerability.

Description

Tom Sawyer Software's GET Extension Factory, a component used for graph visualization applications, is installed on the remote Windows host. It may have been bundled with a third-party application, such as the VMware Infrastructure Client or Embarcadero ER / Studio XE2.

The installed version of this component has a vulnerability in that it does not initialize COM objects properly inside Internet Explorer, which leads to a memory corruption vulnerability.

If an attacker can trick a user on the affected host into visiting a specially crafted web page, this issue could be leveraged to execute arbitrary code on the host subject to the user's privileges.

Solution

If the affected COM object is installed with the VMware Infrastructure Client, follow the instructions in VMware's advisory.

Otherwise, remove or disable the controls.

Public Exploits


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

Here's the list of publicly known exploits and PoCs for verifying the Tom Sawyer Software GET Extension Factory COM Object Instantiation Memory Corruption vulnerability:

  1. Metasploit: exploit/windows/browser/tom_sawyer_tsgetx71ex552
    [Tom Sawyer Software GET Extension Factory Remote Code Execution]
  2. Exploit-DB: exploits/windows/remote/19030.rb
    [EDB-19030: Tom Sawyer Software GET Extension Factory - Remote Code Execution (Metasploit)]

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:F/RL:OF/RC:C
CVSS Base Score:9.3 (High)
Impact Subscore:10.0
Exploitability Subscore:8.6
CVSS Temporal Score:7.7 (High)
CVSS Environmental Score:NA (None)
Modified Impact Subscore:NA
Overall CVSS Score:7.7 (High)

Go back to menu.

Plugin Source


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

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

include("compat.inc");

if (description)
{
  script_id(54990);
  script_version("1.17");
  script_cvs_date("Date: 2018/11/15 20:50:29");

  script_cve_id("CVE-2011-2217");
  script_bugtraq_id(48099);

  script_name(english:"Tom Sawyer Software GET Extension Factory COM Object Instantiation Memory Corruption");
  script_summary(english:"Checks for controls");

  script_set_attribute(
    attribute:"synopsis",
    value:
"The remote Windows host has a COM object that is affected by a memory
corruption vulnerability."
  );
  script_set_attribute(
    attribute:"description",
    value:
"Tom Sawyer Software's GET Extension Factory, a component used for
graph visualization applications, is installed on the remote Windows
host.  It may have been bundled with a third-party application, such
as the VMware Infrastructure Client or Embarcadero ER / Studio XE2.

The installed version of this component has a vulnerability in that it
does not initialize COM objects properly inside Internet Explorer,
which leads to a memory corruption vulnerability.

If an attacker can trick a user on the affected host into visiting a
specially crafted web page, this issue could be leveraged to execute
arbitrary code on the host subject to the user's privileges."
  );
  # https://labs.idefense.com/verisign/intelligence/2009/vulnerabilities/display.php?id=911
  script_set_attribute(attribute:"see_also", value:"http://www.nessus.org/u?d795b7de");
  script_set_attribute(attribute:"see_also", value:"https://seclists.org/bugtraq/2011/Jun/38");
  script_set_attribute(attribute:"see_also", value:"https://seclists.org/bugtraq/2011/Sep/49");
  script_set_attribute(attribute:"see_also", value:"http://www.vmware.com/security/advisories/VMSA-2011-0009.html");
  script_set_attribute(attribute:"see_also", value:"http://lists.vmware.com/pipermail/security-announce/2011/000141.html");
  script_set_attribute(
    attribute:"solution",
    value:
"If the affected COM object is installed with the VMware
Infrastructure Client, follow the instructions in VMware's advisory.

Otherwise, remove or disable the controls."
  );
  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:F/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:"metasploit_name", value:'Tom Sawyer Software GET Extension Factory Remote Code Execution');
  script_set_attribute(attribute:"exploit_framework_metasploit", value:"true");

  script_set_attribute(attribute:"vuln_publication_date", value:"2011/06/03");
  script_set_attribute(attribute:"patch_publication_date", value:"2011/06/03");
  script_set_attribute(attribute:"plugin_publication_date", value:"2011/06/07");

  script_set_attribute(attribute:"plugin_type", value:"local");
  script_end_attributes();

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

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

  script_dependencies("smb_hotfixes.nasl");
  script_require_keys("SMB/Registry/Enumerated");
  script_require_ports(139, 445);

  exit(0);
}


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


get_kb_item_or_exit('SMB/Registry/Enumerated');
if (activex_init() != ACK_OK) exit(1, 'activex_init() failed.');


info = "";
installs = 0;


clsids = make_list(
  '{575B655F-FED4-4EE1-8F62-0A69D404F46B}',
  '{658ED6E7-0DA1-4ADD-B2FB-095F08091118}',     # Embarcadero ER/Studio XE2
  '{A2282403-50DE-4A2E-A118-B90AEDB1ADCC}'
);

info = '';
foreach clsid (clsids)
{
  file = activex_get_filename(clsid:clsid);
  if (isnull(file))
  {
    debug_print('activex_get_filename() returned NULL.');
    continue;
  }
  if (!file)
  {
    debug_print('The control is not installed as the class id \''+clsid+'\' does not exist on the remote host.');
    continue;
  }
  installs++;

  # Get its version.
  version = activex_get_fileversion(clsid:clsid);
  if (!version) version = 'unknown';

  # And check it.
  if (report_paranoia > 1 || activex_get_killbit(clsid:clsid) == 0)
  {
    info += 
      '\n  Class identifier  : ' + clsid +
      '\n  Filename          : ' + file +
      '\n  Installed version : ' + version + '\n';
  }
}
activex_end();
if (!installs) exit(0, 'None of the affected controls were found on the remote host.');


# Report findings.
if (info)
{
  # At this point, we want to know how many *vulnerable* installs there are.
  installs = max_index(split(info)) / 4;

  if (report_paranoia > 1)
  {
    if (installs == 1)
      report = info +
        '\n' +
        '\nNote, though, that Nessus did not check whether the kill bit was set' +
        '\nfor the control\'s CLSID because of the Report Paranoia setting in' +
        '\neffect when this scan was run.\n';
    else
      report = info +
        '\n' +
        '\nNote, though, that Nessus did not check whether the kill bits were set' +
        '\nfor the controls\' CLSIDs because of the Report Paranoia setting in' +
        '\neffect when this scan was run.\n';
  }
  else
  {
    if (installs == 1)
      report = info +
        '\n' +
        '\nMoreover, its kill bit is not set so it is accessible via Internet' +
        '\nExplorer.\n';
    else
      report = info +
        '\n' +
        '\nMoreover, their kill bits are not set so they are accessible via' +
        '\nInternet Explorer.\n';
  }

  if (report_verbosity > 0) security_hole(port:kb_smb_transport(), extra:report);
  else security_hole(kb_smb_transport());
  exit(0);
}
else 
{
  if (installs == 1) exit(0, 'One of the controls is installed but its kill bit is set.');
  else exit(0, 'The controls are installed but their kill bits are set.');
}

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

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

Go back to menu.

How to Run


Here is how to run the Tom Sawyer Software GET Extension Factory COM Object Instantiation Memory Corruption 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 Tom Sawyer Software GET Extension Factory COM Object Instantiation Memory Corruption plugin ID 54990.
  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 tomsawyer_get_extension_factory_activex.nasl -t <IP/HOST>

Run the plugin with audit trail message on the console:

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

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

/opt/nessus/bin/nasl -T - tomsawyer_get_extension_factory_activex.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 tomsawyer_get_extension_factory_activex.nasl -t <IP/HOST>

Go back to menu.

References


BID | SecurityFocus Bugtraq ID: See also: Similar and related Nessus plugins:
  • 54968 - VMSA-2011-0009 : VMware hosted product updates, ESX patches and VI Client update resolve multiple security issues
  • 89678 - VMware ESX / ESXi Multiple Vulnerabilities (VMSA-2011-0009) (remote check)
  • 31646 - Custom Pages for Joomla! 'cpage' Parameter Local File Include
  • 139315 - Foxit PhantomPDF < 10.0.1 Multiple Vulnerabilities
  • 155706 - Foxit PhantomPDF < 10.1.6 Multiple Vulnerabilities
  • 158564 - Foxit PhantomPDF < 10.1.7 Multiple Vulnerabilities
  • 49808 - Foxit Phantom < 2.2.0.926 Multiple Vulnerabilities
  • 102858 - Foxit PhantomPDF < 8.3.2 Multiple Vulnerabilities
  • 121246 - Foxit PhantomPDF < 8.3.9 Multiple Vulnerabilities
  • 111376 - Foxit PhantomPDF < 9.2 Multiple Vulnerabilities
  • 121045 - Foxit PhantomPDF < 9.4 Multiple Vulnerabilities
  • 140503 - Foxit PhantomPDF < 9.7.3 Multiple Vulnerabilities
  • 23784 - phpWebThings core/editor.php editor_insert_bottom Parameter Remote File Inclusion
  • 43862 - Pidgin MSN Custom Smileys Feature Emoticon Request Traversal Arbitrary File Disclosure
  • 63326 - Advanced Custom Fields Plugin for WordPress 'acf_abspath' Parameter Remote File Inclusion
  • 109730 - 7-Zip < 18.05 Memory Corruption Arbitrary Code Execution
  • 59785 - ACDSee Pro < 5.2 Multiple Memory Corruption Vulnerabilities
  • 52671 - Adobe Acrobat 9.x / 10.x Unspecified Memory Corruption (APSB11-06)
  • 57042 - Adobe Acrobat < 9.4.7 Multiple Memory Corruption Vulnerabilities (APSB11-30)
  • 52755 - Adobe AIR < 2.6 Unspecified Memory Corruption (APSB11-05)
  • 59179 - Adobe Illustrator CS5 / CS5.5 Multiple Memory Corruption Vulnerabilities (APSB12-10)
  • 55815 - Adobe Photoshop CS5 GIF File Memory Corruption (APSB11-22)
  • 52672 - Adobe Reader 9.x / 10.x Unspecified Memory Corruption (APSB11-06)
  • 57043 - Adobe Reader < 9.4.7 Multiple Memory Corruption Vulnerabilities (APSB11-30)
  • 52673 - Flash Player < 10.2.153.1 Unspecified Memory Corruption (APSB11-05)
  • 70923 - Google Chrome < 31.0.1650.57 Multiple Memory Corruptions
  • 76766 - IBM General Parallel File System OpenSSH Memory Corruption
  • 72721 - ImageMagick < 6.8.7-6 WritePSDImage PSD Handling Memory Corruption
  • 100300 - Apple iTunes < 12.6.1 WebKit Memory Corruption RCE (credentialed check)
  • 59180 - LibreOffice < 3.5.3 Multiple Memory Corruption Vulnerabilities
  • 40663 - Pidgin < 2.5.9 'msn_slplink_process_msg()' Memory Corruption
  • 31418 - RealPlayer ActiveX (rmoc3260.dll) Console Property Memory Corruption Arbitrary Code Execution
  • 133147 - Internet Explorer Scripting Engine Memory Corruption Vulnerability (CVE-2020-0674) (Deprecated)
  • 103968 - Trend Micro OfficeScan cgiShowClientAdm Remote Memory Corruption
  • 72985 - Oracle VM VirtualBox < 3.2.22 / 4.0.24 / 4.1.32 / 4.2.24 / 4.3.8 Multiple Memory Corruption

Version


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

Go back to menu.