Lucene search
K

StudioLine Photo Basic NMSDVDXU.dll ActiveX EnableLog() Arbitrary File Overwrite

🗓️ 18 Jul 2012 00:00:00Reported by TenableType 
nessus
 nessus
🔗 www.tenable.com👁 19 Views

StudioLine Photo Basic NMSDVDXU.dll ActiveX EnableLog() File Overwrit

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

include("compat.inc");

if (description)
{
  script_id(60022);
  script_version("1.6");
  script_cvs_date("Date: 2018/08/08 12:52:15");

  script_bugtraq_id(49192);

  script_name(english:"StudioLine Photo Basic NMSDVDXU.dll ActiveX EnableLog() Arbitrary File Overwrite");
  script_summary(english:"Checks version of Photo Basic");

  script_set_attribute(
    attribute:"synopsis",
    value:
"The remote host has software installed that is affected by an
arbitrary file overwrite vulnerability."
  );
  script_set_attribute(
    attribute:"description",
    value:
"The remote host has a version of StudioLine Photo Basic less than or
equal to 3.70.34.0 installed.  Such versions are affected by an
arbitrary file overwrite vulnerability in the EnableLog() method on
the NMSDVDXU.dll ActiveX control.

By tricking a victim into opening a specially crafted web page, an
attacker could overwrite arbitrary files on the remote host subject to
the user's privileges."
  );
  script_set_attribute(attribute:"see_also", value:"https://www.htbridge.com/advisory/HTB23024");
  script_set_attribute(
    attribute:"solution",
    value:
"Upgrade to a version of StudioLine Photo Basic greater than 3.70.34.0
or remove / disable the vulnerable ActiveX control."
  );
  script_set_cvss_base_vector("CVSS2#AV:N/AC:M/Au:N/C:N/I:P/A:N");
  script_set_cvss_temporal_vector("CVSS2#E:F/RL:OF/RC:ND");
  script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available");
  script_set_attribute(attribute:"exploit_available", value:"true");

  script_set_attribute(attribute:"vuln_publication_date", value:"2011/08/15");
  script_set_attribute(attribute:"patch_publication_date", value:"2011/07/27");
  script_set_attribute(attribute:"plugin_publication_date", value:"2012/07/18");

  script_set_attribute(attribute:"plugin_type", value:"local");
  script_set_attribute(attribute:"cpe", value:"x-cpe:/a:studioline:photobasic");
  script_end_attributes();

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

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

  script_dependencies("studioline_photobasic_installed.nasl", "smb_hotfixes.nasl");
  script_require_keys("SMB/StudioLine_PhotoBasic/Installed", "SMB/Registry/Enumerated");
  script_require_ports(139, 445);
  exit(0);
}

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

get_kb_item_or_exit("SMB/Registry/Enumerated");

appname = 'StudioLine Photo Basic';
kb_base = "SMB/StudioLine_PhotoBasic/";

get_kb_item_or_exit(kb_base + 'Installed');

installs = get_kb_list(kb_base + 'Installs/*');
if (isnull(installs)) exit(1, 'The \'' + kb_base + 'Installs\' KB list is missing.');

info = '';
info2 = '';

if (activex_init() != ACX_OK) exit(1, "activex_init() failed.");

# Determine if the control is installed.
clsid = '{C2FBBB5F-6FF7-4F6B-93A3-7EDB509AA938}';

file = activex_get_filename(clsid:clsid);
if (isnull(file))
{
  activex_end();
  exit(1, "activex_get_filename() returned NULL.");
}
if (!file)
{
  activex_end();
  audit(AUDIT_ACTIVEX_NOT_FOUND, clsid);
}

# Get its version.
activex_version = activex_get_fileversion(clsid:clsid);
if (!activex_version)
{
  activex_end();
  audit(AUDIT_VER_FAIL, file);
}

foreach install (keys(installs))
{
  path = installs[install];
  version = install - (kb_base + 'Installs/');

  if (ver_compare(ver:version, fix:'3.70.34.0') <= 0 &&
      (report_paranoia > 1 || activex_get_killbit(clsid:clsid) == 0))
  {
    if(report_paranoia > 1)
    {
        info =
        '\n  StudioLine path    : ' + path +
        '\n  StudioLine version : ' + version +
        '\n  ActiveX  CLSID     : ' + clsid +
        '\n  ActiveX  path      : ' + file +
        '\n' +
        '\nNote, though, that Nessus did not check whether the kill bit was' +
        '\nset for the control\'s CLSID because of the Report Paranoia setting' +
        '\nin effect when this scan was run.\n';
    }
    else
    {
         info =
        '\n  StudioLine path    : ' + path +
        '\n  StudioLine version : ' + version +
        '\n  ActiveX  CLSID     : ' + clsid +
        '\n  ActiveX  path      : ' + file +
        '\n' +
        '\nMoreover, its kill bit is not set so it is accessible via Internet' +
        '\nExplorer.\n';
    }
    # we don't need to check other installs
    break;
  }
  else info2 += ' and ' + version;
}

activex_end();

if (info)
{
  if (report_verbosity > 0) security_warning(port:get_kb_item('SMB/transport'), extra:info);
  else security_warning(get_kb_item('SMB/transport'));
  exit(0);
}

if (info2)
{
  info2 -= ' and ';
  if (' and ' >< info2) be = 'are';
  else be = 'is';

  exit(0, 'The host is not affected since ' + appname + ' ' + info2 + ' ' + be + ' installed.');
}
else exit(1, 'Unexpected error - \'info2\' is empty.');

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

08 Aug 2018 12:52Current
5.8Medium risk
Vulners AI Score5.8
19