New Windows Vulnerability in VDM Discovered [Security]
The last days have not been pleasant for Microsoft. A new Windows vulnerability affecting all 32-bit editions of the operating system from Windows 3.11 to Windows 7 was uncovered shortly after the revelation that an exploit in Microsoft's Internet Explorer 6 was used in the attack on several US companies that included Google and Adobe (read Microsoft Confirms Internet Explorer Vulnerability).
Cause of the problem is the virtual dos machine (vdm) that was introduced in 1993 to support 16-bit applications. The exploit was uncovered by Tavis Ormandy, a member of Google's security team.
The vulnerability can be exploited to run code with elevated rights on the computer system. The full technical explanation of the vulnerability and example exploit code are available at Neohapsis.
No patch has been issued by Microsoft until now even though Ormandy mentioned that he had contacted Microsoft about the issue six months ago. There is however a quick fix for most Windows operating systems: Disallowing VDM.
There are two possibilities on how to do that. System administrators and users with access to the Windows Group Policy Editor and an operating system that is Windows 2003 or newer can enable the policy to "Prevent access to 16-bit applications" in Computer Configuration > Administrative Templates > Windows Components > Application Compatibility".
This setting has the consequence that 16-bit applications will not execute on the computer system which should not have an effect on most home users but may render very old software unusable on the system (hint: virtualization is an option).
Users with operating systems prior to Windows 2003, Windows XP comes to mind, can alternatively create a new Windows Registry key to close the security vulnerability in the operating system.
- Open the Windows Registry Editor in the following way: Tap on the Windows-key, type regedit.exe and hit enter.
- Navigate to the key
- and create the new DWORD VDMDisallowed there with a right-click on AppCompat and the selection of New > Dword (32-bit value) from the context menu.
- Double-click the newly created preference afterwards and set its value to 1.