From labs-no-reply@idefense.com Tue Apr 12 15:33:39 2005
From: iDEFENSE Labs
To: bugtraq@securityfocus.com, vulnwatch@vulnwatch.org, full-disclosure@lists.netsys.com
Date: Tue, 12 Apr 2005 14:43:41 -0400
Subject: iDEFENSE Security Advisory 04.12.05: Microsoft MSHTA Script Execution Vulnerability
Microsoft MSHTA Script Execution Vulnerability
iDEFENSE Security Advisory 04.12.05
www.idefense.com/application/poi/display?id=231&type=vulnerabilities
April 12, 2005
I. BACKGROUND
Microsoft HTML Application Host (MSHTA) is part of the Microsoft Windows
operating system and is needed to execute .HTA files.
II. DESCRIPTION
Remote exploitation of a design error vulnerability in Microsoft Corp.'s
Windows operating system allows attackers to execute arbitrary script
code from a non-executable object.
Various files, such as a Microsoft Word documents will be opened by the
appropriate program even if they are renamed with an unknown extension.
The reason for this is that the CLSID of the Microsoft Word program is
stored within the OLE2 document. The CLSID of a given file can be
manipulated to specify that another program should handle the opening of
the file. The CLSID is located after the Unicode string "Root Entry" as
seen in the following excerpt:
b800h: 52 00 6F 00 6F 00 74 00 20 00 45 00 6E 00 74 00 R.o.o.t. .E.n.t.
b810h: 72 00 79 00 00 00 00 00 00 00 00 00 00 00 00 00 r.y.............
b820h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
b830h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
b840h: 16 00 05 01 FF FF FF FF FF FF FF FF 03 00 00 00 ....ÿÿÿÿÿÿÿÿ....
b850h: 06 09 02 00 00 00 00 00 C0 00 00 00 00 00 00 46 ........À......F
In the above example, the CLSID {00020906-0000-0000-C000-000000000046},
can be found at the hex offset 0xb850 from above. An attacker can
execute arbitrary script code from a seemingly non-executable object by
appending script code to the end of a file and modifying the CLSID to be
that of the Microsoft HTML Application Host (MSHTA). The MSHTA CLSID can
be found in the Windows Registry. This attack works because MSHTA.EXE
will completely scan the file passed in as an argument in search of
script code. If found, the code will be executed.
While the given example is built on modifications to a Microsoft Word
document, it is important to note that this vulnerability is not Word
specific or dependant and in fact can not manifest in Word documents
containing a handled file extension.
III. ANALYSIS
Successful exploitation allows remote attackers to execute arbitrary
script code from a non-executable object. This vulnerability can be
leveraged by attackers when distributing malicious content as it will
appear harmless to most users. Exploitation requires that a target user
double-click on a malicious file that contains an unhandled extension.
An attacker may use an extension such as .d0c (numeric zero in place of
letter 'o') to mask the malicious file as a Word document.
Windows XP Service Pack 2 has added a new security feature to Internet
Explorer that prevents and/or warns the user when unsigned executable
content is selected for download. The described vulnerability also
allows an attacker to bypass this security protection.
IV. DETECTION
iDEFENSE has confirmed the existence of this vulnerability in Microsoft
Windows 2000 and Microsoft Windows XP. It is suspected that all versions
of Microsoft Windows operating systems are vulnerable.
V. WORKAROUND
Removing the associated CLSID for MSHTA from system registry prevents
exploitation of the described vulnerability:
HKEY_CLASSES_ROOT\CLSID\{3050f4d8-98B5-11CF-BB82-00AA00BDCE0B}
This key should be backed-up before removal. Please note that removing
this key may cause other problems. Preliminary testing shows that the
key is not necessary for regular system usage.
VI. VENDOR RESPONSE
This vulnerability is addressed in Microsoft Security Bulletin MS05-016
available at:
http://www.microsoft.com/technet/security/Bulletin/MS05-016.mspx
VII. CVE INFORMATION
The Common Vulnerabilities and Exposures (CVE) project has assigned the
name CAN-2005-0063 to this issue. This is a candidate for inclusion
in the CVE list (http://cve.mitre.org), which standardizes names for
security problems.
VIII. DISCLOSURE TIMELINE
11/02/2004 Initial vendor notification
11/02/2004 Initial vendor response
04/12/2005 Coordinated public disclosure
IX. CREDIT
The discoverer of this vulnerability wishes to remain anonymous.
Get paid for vulnerability research
http://www.idefense.com/poi/teams/vcp.jsp
Free tools, research and upcoming events
http://labs.idefense.com
X. LEGAL NOTICES
Copyright (c) 2005 iDEFENSE, Inc.
Permission is granted for the redistribution of this alert
electronically. It may not be edited in any way without the express
written consent of iDEFENSE. If you wish to reprint the whole or any
part of this alert in any other medium other than electronically, please
email customerservice@idefense.com for permission.
Disclaimer: The information in the advisory is believed to be accurate
at the time of publishing based on currently available information. Use
of the information constitutes acceptance for use in an AS IS condition.
There are no warranties with regard to this information. Neither the
author nor the publisher accepts any liability for any direct, indirect,
or consequential loss or damage arising from use of, or reliance on,
this information.