Vulnerabilities > CVE-2010-3228 - Code Injection vulnerability in Microsoft .Net Framework 4.0

047910
CVSS 0.0 - NONE
Attack vector
UNKNOWN
Attack complexity
UNKNOWN
Privileges required
UNKNOWN
Confidentiality impact
UNKNOWN
Integrity impact
UNKNOWN
Availability impact
UNKNOWN

Summary

The JIT compiler in Microsoft .NET Framework 4.0 on 64-bit platforms does not properly perform optimizations, which allows remote attackers to execute arbitrary code via a crafted .NET application that triggers memory corruption, aka ".NET Framework x64 JIT Compiler Vulnerability."

Common Attack Pattern Enumeration and Classification (CAPEC)

  • Leverage Executable Code in Non-Executable Files
    An attack of this type exploits a system's trust in configuration and resource files, when the executable loads the resource (such as an image file or configuration file) the attacker has modified the file to either execute malicious code directly or manipulate the target process (e.g. application server) to execute based on the malicious configuration parameters. Since systems are increasingly interrelated mashing up resources from local and remote sources the possibility of this attack occurring is high. The attack can be directed at a client system, such as causing buffer overrun through loading seemingly benign image files, as in Microsoft Security Bulletin MS04-028 where specially crafted JPEG files could cause a buffer overrun once loaded into the browser. Another example targets clients reading pdf files. In this case the attacker simply appends javascript to the end of a legitimate url for a pdf (http://www.gnucitizen.org/blog/danger-danger-danger/) http://path/to/pdf/file.pdf#whatever_name_you_want=javascript:your_code_here The client assumes that they are reading a pdf, but the attacker has modified the resource and loaded executable javascript into the client's browser process. The attack can also target server processes. The attacker edits the resource or configuration file, for example a web.xml file used to configure security permissions for a J2EE app server, adding role name "public" grants all users with the public role the ability to use the administration functionality. The server trusts its configuration file to be correct, but when they are manipulated, the attacker gains full control.
  • Manipulating User-Controlled Variables
    This attack targets user controlled variables (DEBUG=1, PHP Globals, and So Forth). An attacker can override environment variables leveraging user-supplied, untrusted query variables directly used on the application server without any data sanitization. In extreme cases, the attacker can change variables controlling the business logic of the application. For instance, in languages like PHP, a number of poorly set default configurations may allow the user to override variables.

Msbulletin

bulletin_idMS10-077
bulletin_url
date2010-10-12T00:00:00
impactRemote Code Execution
knowledgebase_id2160841
knowledgebase_url
severityCritical
titleVulnerability in .NET Framework Could Allow Remote Code Execution

Nessus

NASL familyWindows : Microsoft Bulletins
NASL idSMB_NT_MS10-077.NASL
descriptionThe JIT compiler included with the version of the .NET Framework installed on the remote host optimizes code based on an incorrect assessment. If an attacker can trick a user on the affected host into viewing a specially crafted web page using a Web browser that can run XAML Browser Applications (XBAPs), he can leverage this issue to corrupt memory and in turn execute arbitrary code either in the context of the currently logged-on user or the service account associated with an application pool identity. Note that this issue only affects x64-based versions of Windows.
last seen2020-06-01
modified2020-06-02
plugin id49954
published2010-10-13
reporterThis script is Copyright (C) 2010-2018 Tenable Network Security, Inc.
sourcehttps://www.tenable.com/plugins/nessus/49954
titleMS10-077: Vulnerability in .NET Framework Could Allow Remote Code Execution (2160841)
code
#
# (C) Tenable Network Security, Inc.
#

include("compat.inc");

if (description)
{
  script_id(49954);
  script_version("1.21");
  script_cvs_date("Date: 2018/11/15 20:50:30");

  script_cve_id("CVE-2010-3228");
  script_bugtraq_id(43781);
  script_xref(name:"MSFT", value:"MS10-077");
  script_xref(name:"MSKB", value:"2160841");

  script_name(english:"MS10-077: Vulnerability in .NET Framework Could Allow Remote Code Execution (2160841)");
  script_summary(english:"Checks version of clrjit.dll");

  script_set_attribute(
    attribute:"synopsis",
    value:
"The version of the .NET Framework installed on the remote host allows
arbitrary code execution."
  );
  script_set_attribute(
    attribute:"description",
    value:
"The JIT compiler included with the version of the .NET Framework
installed on the remote host optimizes code based on an incorrect
assessment.

If an attacker can trick a user on the affected host into viewing a
specially crafted web page using a Web browser that can run XAML
Browser Applications (XBAPs), he can leverage this issue to corrupt
memory and in turn execute arbitrary code either in the context of the
currently logged-on user or the service account associated with an
application pool identity.

Note that this issue only affects x64-based versions of Windows."
  );
  script_set_attribute(attribute:"see_also", value:"https://docs.microsoft.com/en-us/security-updates/SecurityBulletins/2010/ms10-077");
  script_set_attribute(
    attribute:"solution",
    value:
"Microsoft has released a set of patches for the .NET Framework on
Windows XP, 2003, Vista, 2008, 7, and 2008 R2."
  );
  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:U/RL:OF/RC:C");
  script_set_attribute(attribute:"exploitability_ease", value:"No known exploits are available");
  script_set_attribute(attribute:"exploit_available", value:"false");

  script_set_attribute(attribute:"vuln_publication_date", value:"2010/10/12");
  script_set_attribute(attribute:"patch_publication_date", value:"2010/10/12");
  script_set_attribute(attribute:"plugin_publication_date", value:"2010/10/13");

  script_set_attribute(attribute:"plugin_type", value:"local");
  script_set_attribute(attribute:"cpe", value:"cpe:/a:microsoft:.net_framework");
  script_end_attributes();

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

  script_copyright(english:"This script is Copyright (C) 2010-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 = 'MS10-077';
kbs = make_list("2160841");
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");
get_kb_item_or_exit("SMB/WindowsVersion", exit_code:1);

if (hotfix_check_sp_range(win2003:'2', vista:'1,2', win7:'0,1') <= 0) audit(AUDIT_OS_SP_NOT_VULN);
if (hotfix_check_server_core() == 1) audit(AUDIT_WIN_SERVER_CORE);

arch = get_kb_item_or_exit("SMB/ARCH", exit_code:1);
if (arch != "x64") exit(0, "Only x64-based and Itanium-based systems are affected.");

rootfile = hotfix_get_systemroot();
if (!rootfile) exit(1, "Failed to get the system root.");

share = hotfix_path2share(path:rootfile);
if (!is_accessible_share(share:share)) audit(AUDIT_SHARE_FAIL, share);

dir = "\Microsoft.NET\Framework64\v4.0.30319";

kb = "2160841";
if (
  # Windows 7 / Server 2008 R2
  hotfix_is_vulnerable(os:"6.1",       file:"clrjit.dll", version:"4.0.30319.336", min_version:"4.0.30319.300", dir:dir, bulletin:bulletin, kb:kb) ||
  hotfix_is_vulnerable(os:"6.1",       file:"clrjit.dll", version:"4.0.30319.202",                              dir:dir, bulletin:bulletin, kb:kb) ||

  # Vista / Windows Server 2008
  hotfix_is_vulnerable(os:"6.0",       file:"clrjit.dll", version:"4.0.30319.336", min_version:"4.0.30319.300", dir:dir, bulletin:bulletin, kb:kb) ||
  hotfix_is_vulnerable(os:"6.0",       file:"clrjit.dll", version:"4.0.30319.202",                              dir:dir, bulletin:bulletin, kb:kb) ||

  # Windows 2003 and XP x64
  hotfix_is_vulnerable(os:"5.2", sp:2, file:"clrjit.dll", version:"4.0.30319.336", min_version:"4.0.30319.300", dir:dir, bulletin:bulletin, kb:kb) ||
  hotfix_is_vulnerable(os:"5.2", sp:2, file:"clrjit.dll", version:"4.0.30319.202",                              dir:dir, bulletin:bulletin, kb:kb)
)
{
  set_kb_item(name:"SMB/Missing/MS10-077", value:TRUE);
  hotfix_security_hole();

  hotfix_check_fversion_end();
  exit(0);
}
else
{
  hotfix_check_fversion_end();
  audit(AUDIT_HOST_NOT, 'affected');
}

Oval

accepted2014-08-18T04:06:20.188-04:00
classvulnerability
contributors
  • nameDragos Prisaca
    organizationSymantec Corporation
  • nameJosh Turpin
    organizationSymantec Corporation
  • nameShane Shaffer
    organizationG2, Inc.
  • nameDragos Prisaca
    organizationSymantec Corporation
  • nameMaria Mikhno
    organizationALTX-SOFT
definition_extensions
  • commentMicrosoft Windows XP x64 is installed
    ovaloval:org.mitre.oval:def:15247
  • commentMicrosoft Windows Server 2003 (x64) is installed
    ovaloval:org.mitre.oval:def:730
  • commentMicrosoft Windows Server 2003 (ia64) Gold is installed
    ovaloval:org.mitre.oval:def:396
  • commentMicrosoft Windows Vista x64 Edition is installed
    ovaloval:org.mitre.oval:def:2041
  • commentMicrosoft Windows Server 2008 (64-bit) is installed
    ovaloval:org.mitre.oval:def:5356
  • commentMicrosoft Windows Server 2008 (ia-64) is installed
    ovaloval:org.mitre.oval:def:5667
  • commentMicrosoft Windows 7 x64 Edition is installed
    ovaloval:org.mitre.oval:def:5950
  • commentMicrosoft Windows Server 2008 R2 x64 Edition is installed
    ovaloval:org.mitre.oval:def:6438
  • commentMicrosoft Windows Server 2008 R2 Itanium-Based Edition is installed
    ovaloval:org.mitre.oval:def:5954
  • commentMicrosoft .NET Framework 4.0 is installed
    ovaloval:org.mitre.oval:def:6749
descriptionThe JIT compiler in Microsoft .NET Framework 4.0 on 64-bit platforms does not properly perform optimizations, which allows remote attackers to execute arbitrary code via a crafted .NET application that triggers memory corruption, aka ".NET Framework x64 JIT Compiler Vulnerability."
familywindows
idoval:org.mitre.oval:def:6824
statusaccepted
submitted2010-10-12T13:00:00
title.NET Framework x64 JIT Compiler Vulnerability
version32

Seebug

bulletinFamilyexploit
descriptionBUGTRAQ ID: 43781 CVE ID: CVE-2010-3228 Microsoft .NET Framework是一个流行的软件开发工具包。 NET Framework中的JIT编译器在优化代码时存在漏洞,当用户访问承载了特制XBAP的网页时就可能触发内存破坏,导致执行任意代码。此漏洞仅影响x64和Itanium架构。 Microsoft .NET Framework 4.0 临时解决方法: * 禁用部分受信任的Microsoft .NET应用: caspol –pp off caspol –m –resetlockdown caspol –pp on * 在Internet Explorer中禁用XAML浏览器应用。 厂商补丁: Microsoft --------- Microsoft已经为此发布了一个安全公告(MS10-077)以及相应补丁: MS10-077:Vulnerability in .NET Framework Could Allow Remote Code Execution (2160841) 链接:http://www.microsoft.com/technet/security/bulletin/MS10-077.mspx?pf=true
idSSV:20172
last seen2017-11-19
modified2010-10-15
published2010-10-15
reporterRoot
titleMicrosoft .NET Framework JIT编译器优化远程代码执行漏洞(MS10-077)