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 Microsoft “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 (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.
MSHTML.DLL on Windows 7 SP1 has missing dependencies for the following DLLs:
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.
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. This happens more often than expected, e.g. if applications are being installed directly below the root directory of the system drive C:\. Examples are Python, Ruby or such.
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
- Add a Word document to a share (e.g. hello.docx) accessible from a vulnerable Windows installation.
- Add a “malicious” DLL to the same directory and name it api-ms-win-appmodel-runtime-l1-1-0.dll
- Mount the remote Windows share on a Windows 7 PC
- Double-Click hello.docx (with Microsoft Word or Word Viewer). The “malicious” DLL is loaded and executed in addition to Word.
To create such a DLL one can use Metasploit’s msfvenom. To make it open calc.exe use the following command:
Microsoft published the following security advisory MS16-037.
Additional Note: The issue is completely fixed only if also MS16-041 is installed!