Microsoft Internet Explorer 11 ships with MSHTML.DLL referencing various DLLs which are not present on a Windows 7 SP1 installation, Windows 10 is not affected, other Windows versions have not been tested. According to "MSHTML.DLL is at the heart of Internet Explorer and takes care of its HTML and Cascading Style Sheets (CSS) parsing and rendering functionality." Every application using MSHTML.DLL directly or another DLL which incorporates MSHTML.DLL (like SHELL32.dll) is prone to binary planting.
6527d84b2e81cbfa11caebc6caad25537bf4ae7b3243d2620fd57dda899352a3
Abstract
--------
Microsoft Internet Explorer 11 MSHTML.DLL Remote Binary Planting
Vulnerability
Affected Version: MSHTML.DLL 11.0.9600.18231 and probably below on
Windows 7 SP1
Vendor Homepage: http://www.microsoft.com
Severity: high
Status: fixed
CVE-ID: CVE-2016-0160
Description
-----------
Microsoft Internet Explorer 11 ships with MSHTML.DLL referencing various
DLLs which are not present on a Windows 7 SP1 installation, Windows 10
is not affected, other Windows versions have not been tested.
According to [1] "MSHTML.DLL is at the heart of Internet Explorer and
takes care of its HTML and Cascading Style Sheets (CSS) parsing and
rendering functionality."
Every application using MSHTML.DLL directly or another DLL which
incorporates MSHTML.DLL (like SHELL32.dll) is prone to binary
planting[2] (including services running as SYSTEM). So this issue is not
restricted to Microsoft applications.
In addition certain applications like Microsoft
Word/Excel/Powerpoint/Project/powershell/... as well as a certain number
of third party software are prone to remote binary planting due to using
MSHTML.DLL in some ways.
Technical Details
-----------------
MSHTML.DLL on Windows 7 SP1 has missing dependencies for the following DLLs:
API-MS-WIN-APPMODEL-RUNTIME-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-ERROR-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-ROBUFFER-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-STRING-L1-1-0.DLL
API-MS-WIN-SHCORE-SCALING-L1-1-1.DLL
DCOMP.DLL
IESHIMS.DLL
Since all mentioned DLLs are available on a Windows 10 installation my
assumption is that this might be due to developing for Windows 10 and
backporting to Windows 7.
Whenever an application is using MSHTML.DLL either directly or via
indirect dependencies from SHELL32.DLL for instance it tries to find
API-MS-WIN-APPMODEL-RUNTIME-L1-1-0.DLL using the DLL search order (see [3]).
If a user and/or a remote attacker is able to control one directory in
the system's DLL search path he can escalate privileges from user to
SYSTEM in case of a vulnerable service running as SYSTEM.
If a user is tricked to open e.g. a word document from a Windows or even
WebDAV
share holding additionally a malicious DLL named
API-MS-WIN-APPMODEL-RUNTIME-L1-1-0.DLL it is loaded and executed in the
user's context.
Proof-of-Concept Remote Binary Planting
---------------------------------------
1. Add a Word document to a share (e.g. hello.docx) accessible from a
vulnerableWindows installation.
2. Add a "malicious" DLL to the same directory and name it
api-ms-win-appmodel-runtime-l1-1-0.dll
3. Mount the remote Windows share on a Windows 7 PC
4. Double-Click hello.docx (with Microsoft Word or Word Viewer)
The "malicious" DLL is loaded and executed in addition to Word
Solution
--------
Microsoft published the following security advisory MS16-037 [4]
Additional Note: The issue is completely fixed only if also MS16-041
is installed [5]!
Advisory Timeline
-----------------
30. Dec 2015 - Informed Microsoft Security Response Center
31. Dec 2015 - MSRC confirmed receipt
13. Feb 2016 - Requested status update
17. Feb 2016 - MSRC confirmed issue
12. Apr 2016 - MS16-037 published
15. Apr 2016 - Public Disclosure
Author
------
Sandro Poppi <spoppi.sec@gmail.com>
References
----------
[1] https://msdn.microsoft.com/en-us/library/aa741312%28v=vs.85%29.aspx
[2]
http://blogs.technet.com/b/srd/archive/2010/08/23/more-information-about-dll-preloading-remote-attack-vector.aspx
[3]
https://msdn.microsoft.com/en-us/library/windows/desktop/ff919712%28v=vs.85%29.aspx
[4] https://technet.microsoft.com/en-us/library/security/ms16-037
[5] https://technet.microsoft.com/en-us/library/security/ms16-041