Vulnerabilities > CVE-2012-0016 - Unspecified vulnerability in Microsoft Expression Design 2/3/4

047910
CVSS 9.3 - CRITICAL
Attack vector
NETWORK
Attack complexity
MEDIUM
Privileges required
NONE
Confidentiality impact
COMPLETE
Integrity impact
COMPLETE
Availability impact
COMPLETE
network
microsoft
critical
nessus
exploit available

Summary

Untrusted search path vulnerability in Microsoft Expression Design; Expression Design SP1; and Expression Design 2, 3, and 4 allows local users to gain privileges via a Trojan horse DLL in the current working directory, as demonstrated by a directory that contains a .xpr or .DESIGN file, aka "Expression Design Insecure Library Loading Vulnerability." Per: http://technet.microsoft.com/en-us/security/bulletin/ms12-022 'This is a remote code execution vulnerability.' Per: http://cwe.mitre.org/data/definitions/426.html 'CWE-426: Untrusted Search Path'

Exploit-Db

descriptionMicrosoft Internet Explorer - COALineDashStyleArray Unsafe Memory Access (MS12-022). CVE-2012-0016,CVE-2013-0074. Remote exploit for windows platform
idEDB-ID:29858
last seen2016-02-03
modified2013-11-27
published2013-11-27
reportermetasploit
sourcehttps://www.exploit-db.com/download/29858/
titleMicrosoft Internet Explorer - COALineDashStyleArray Unsafe Memory Access MS12-022

Msbulletin

bulletin_idMS12-022
bulletin_url
date2012-03-13T00:00:00
impactRemote Code Execution
knowledgebase_id2651018
knowledgebase_url
severityImportant
titleVulnerability in Expression Design Could Allow Remote Code Execution

Nessus

NASL familyWindows : Microsoft Bulletins
NASL idSMB_NT_MS12-022.NASL
descriptionThe version of Microsoft Expression Design installed on the remote host is reportedly affected by an insecure library loading vulnerability. A remote attacker could exploit this flaw by tricking a user into opening a legitimate .xpr or .DESIGN file located in the same directory as a maliciously crafted dynamic link library (DLL) file, resulting in arbitrary code execution.
last seen2020-06-01
modified2020-06-02
plugin id58334
published2012-03-13
reporterThis script is Copyright (C) 2012-2018 Tenable Network Security, Inc.
sourcehttps://www.tenable.com/plugins/nessus/58334
titleMS12-022: Vulnerability in Expression Design Could Allow Remote Code Execution (2651018)
code
#
# (C) Tenable Network Security, Inc.
#

include("compat.inc");

if (description)
{
  script_id(58334);
  script_version("1.14");
  script_cvs_date("Date: 2018/11/15 20:50:31");

  script_cve_id("CVE-2012-0016");
  script_bugtraq_id(52375);
  script_xref(name:"MSFT", value:"MS12-022");
  script_xref(name:"IAVA", value:"2012-A-0038");
  script_xref(name:"MSKB", value:"2675064");
  script_xref(name:"MSKB", value:"2667724");
  script_xref(name:"MSKB", value:"2667725");
  script_xref(name:"MSKB", value:"2667727");
  script_xref(name:"MSKB", value:"2667730");

  script_name(english:"MS12-022: Vulnerability in Expression Design Could Allow Remote Code Execution (2651018)");
  script_summary(english:"Checks version of GraphicsCore.dll");

  script_set_attribute(attribute:"synopsis", value:
"The Microsoft Expression Design install on the remote Windows host
could allow arbitrary code execution.");
  script_set_attribute(attribute:"description", value:
"The version of Microsoft Expression Design installed on the remote
host is reportedly affected by an insecure library loading
vulnerability.

A remote attacker could exploit this flaw by tricking a user into
opening a legitimate .xpr or .DESIGN file located in the same
directory as a maliciously crafted dynamic link library (DLL) file,
resulting in arbitrary code execution.");
  script_set_attribute(attribute:"see_also", value:"https://docs.microsoft.com/en-us/security-updates/SecurityBulletins/2012/ms12-022");
  script_set_attribute(attribute:"solution", value:"Microsoft has released a patch for Expression Design.");
  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:"vuln_publication_date", value:"2012/03/13");
  script_set_attribute(attribute:"patch_publication_date", value:"2012/03/13");
  script_set_attribute(attribute:"plugin_publication_date", value:"2012/03/13");

  script_set_attribute(attribute:"plugin_type", value:"local");
  script_set_attribute(attribute:"cpe", value:"cpe:/a:microsoft:expression_design");
  script_set_attribute(attribute:"stig_severity", value:"II");
  script_end_attributes();

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

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

  script_dependencies("smb_hotfixes.nasl", "ms_bulletin_checks_possible.nasl");
  script_require_keys("SMB/MS_Bulletin_Checks/Possible");
  script_require_ports(139, 445, "Host/patch_management_checks");

  exit(0);
}

include("audit.inc");
include("smb_func.inc");
include("smb_hotfixes.inc");
include("smb_hotfixes_fcheck.inc");
include("misc_func.inc");

get_kb_item_or_exit('SMB/MS_Bulletin_Checks/Possible');

bulletin = 'MS12-022';
kbs = make_list('2675064', '2667724', '2667725', '2667727', '2667730');
if (get_kb_item('Host/patch_management_checks')) hotfix_check_3rd_party(bulletin:bulletin, kbs:kbs, severity:SECURITY_HOLE);

get_kb_item_or_exit("SMB/Registry/Enumerated");

# 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");

hcf_init = TRUE;

# Connect to remote registry.
rc = NetUseAdd(login:login, password:pass, domain:domain, share:"IPC$");
if (rc != 1)
{
  NetUseDel();
  audit(AUDIT_SHARE_FAIL, "IPC$");
}

hklm = RegConnectRegistry(hkey:HKEY_LOCAL_MACHINE);
if (isnull(hklm))
{
  NetUseDel();
  audit(AUDIT_REG_FAIL);
}

# Check for Microsoft Expression installs
paths = make_list();

key = 'SOFTWARE\\Microsoft\\Expression\\Design';
key_h = RegOpenKey(handle:hklm, key:key, mode:MAXIMUM_ALLOWED);
if (!isnull(key_h))
{
  value = RegQueryValue(handle:key_h, item:'InstallDir');
  if (!isnull(value)) paths = make_list(paths, value[1]);

  # In some cases, the Install info is stored in a subkey
  info = RegQueryInfoKey(handle:key_h);
  for (i=0; i<info[1]; ++i)
  {
    subkey = RegEnumKey(handle:key_h, index:i);
    if (strlen(subkey) && subkey =~ '^[0-9\\.]+$')
    {
      key2 = key + '\\' + subkey;
      key2_h = RegOpenKey(handle:hklm, key:key2, mode:MAXIMUM_ALLOWED);
      if (!isnull(key2_h))
      {
        value = RegQueryValue(handle:key2_h, item:'InstallDir');
        if (!isnull(value)) paths = make_list(paths, value[1]);

        RegCloseKey(handle:key2_h);
      }
    }
  }
  RegCloseKey(handle:key_h);
}
RegCloseKey(handle:hklm);
NetUseDel(close:FALSE);

if (max_index(paths) == 0)
{
  NetUseDel();
  exit(0, 'No evidence of Microsoft Expression Design found in the registry.');
}

# Loop through and check each install
vuln = 0;
foreach path (paths)
{
  share = ereg_replace(pattern:'^([A-Za-z]):.*', replace:'\\1$', string:path);
  dll = ereg_replace(pattern:'^[A-Za-z]:(.*)', replace:'\\1\\GraphicsCore.dll', string:path);

  NetUseDel(close:FALSE);

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

  if (
    # Expression Design
    #hotfix_is_vulnerable(path:path, file:'GraphicsCore.dll', version:'4.0.2712.1', min_version:'4.0.0.0', bulletin:bulletin, kb:'2675064') ||
    # Expression Design SP1
    #hotfix_is_vulnerable(path:path, file:'GraphicsCore.dll', version:'4.0.2920.1', min_version:'4.0.2900.0', bulletin:bulletin, kb:'2667724') ||
    # Expression Design 2
    #hotfix_is_vulnerable(path:path, file:'GraphicsCore.dll', version:'5.0.1379.1', min_version:'5.0.0.0', bulletin:bulletin, kb:'2667725') ||

    # Expression Design 3
    hotfix_is_vulnerable(path:path, file:'GraphicsCore.dll', version:'6.0.1746.0', min_version:'6.0.0.0', bulletin:bulletin, kb:'2667727') ||

    # Expression Design 4
    hotfix_is_vulnerable(path:path, file:'GraphicsCore.dll', version:'7.0.30202.0', min_version:'7.0.0.0', bulletin:bulletin, kb:'2667730')
  )
  {
    vuln++;
  }
}

hotfix_check_fversion_end();

if (vuln)
{
  set_kb_item(name:'SMB/Missing/'+bulletin, value:TRUE);
  hotfix_security_hole();
  exit(0);
}
else exit(0, 'The host is not affected.');

Oval

accepted2012-04-23T04:00:11.397-04:00
classvulnerability
contributors
nameJosh Turpin
organizationSymantec Corporation
definition_extensions
  • commentMicrosoft Expression Design 1 RTM is installed
    ovaloval:org.mitre.oval:def:14893
  • commentMicrosoft Expression Design 1 Service Pack 1 is installed
    ovaloval:org.mitre.oval:def:14913
  • commentMicrosoft Expression Design 2 is installed
    ovaloval:org.mitre.oval:def:15010
  • commentMicrosoft Expression Design 3 is installed
    ovaloval:org.mitre.oval:def:15115
  • commentMicrosoft Expression Design 4 is installed
    ovaloval:org.mitre.oval:def:14877
descriptionUntrusted search path vulnerability in Microsoft Expression Design; Expression Design SP1; and Expression Design 2, 3, and 4 allows local users to gain privileges via a Trojan horse DLL in the current working directory, as demonstrated by a directory that contains a .xpr or .DESIGN file, aka "Expression Design Insecure Library Loading Vulnerability."
familywindows
idoval:org.mitre.oval:def:14973
statusaccepted
submitted2012-03-13T13:00:00
titleExpression Design Insecure Library Loading Vulnerability
version5

Saint

bid52375
descriptionMicrosoft Expression Design wintab32.dll Library Loading
idwin_patch_exprdesign12022
osvdb80001
titlems_expression_design_dll_loading
typeclient

Seebug

bulletinFamilyexploit
descriptionBUGTRAQ ID: 52375 CVE ID: CVE-2012-0016 Expression Design 是个专业的插图和图形设计工具,可让您为 Web 和桌面应用程序使用者接口建立吸引人的项目。 Microsoft Expression以不安全的方式加载某些库,通过诱使用户打开远程WebDAV或SMB共享上的.xpr或.DESIGN文件,远程攻击者可利用此漏洞控制用户系统。 0 Microsoft Expression Design 4 Microsoft Expression Design 3 Microsoft Expression Design 2 Microsoft Expression Design 1 厂商补丁: Microsoft --------- 目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载: http://www.microsoft.com/technet/security/
idSSV:30194
last seen2017-11-19
modified2012-03-15
published2012-03-15
reporterRoot
titleMicrosoft Expression 'wintab32.dll' DLL加载任意代码执行漏洞(MS12-022)