Microsoft Security Bulletin MS16-026 - Critical

Security Update for Graphic Fonts to Address Remote Code Execution (3143148)

Published: March 8, 2016

Version: 1.0

Executive Summary

This security update resolves vulnerabilities in Microsoft Windows. The more severe of the vulnerabilities could allow remote code execution if an attacker either convinces a user to open a specially crafted document, or to visit a webpage that contains specially crafted embedded OpenType fonts.

This security update is rated Critical for all supported editions of Windows. For more information, see the Affected Software section.

The security update addresses the vulnerabilities by correcting how the Windows Adobe Type Manager Library handles OpenType fonts.

For more information about the vulnerability, see the Vulnerability Information section.

For more information about this update, see Microsoft Knowledge Base Article 3143148.

Affected Software and Vulnerability Severity Ratings

The following software versions or editions are affected. Versions or editions that are not listed are either past their support life cycle or are not affected. To determine the support life cycle for your software version or edition, see Microsoft Support Lifecycle.

The severity ratings indicated for each affected software assume the potential maximum impact of the vulnerability. For information regarding the likelihood, within 30 days of this security bulletin’s release, of the exploitability of the vulnerability in relation to its severity rating and security impact, please see the Exploitability Index in the March bulletin summary.

Operating System OpenType Font Parsing Vulnerability - CVE-2016-0120 OpenType Font Parsing Vulnerability - CVE-2016-0121 Updates Replaced*
Windows Vista
Windows Vista Service Pack 2
(3140735)
Moderate
Denial of Service
Critical
Remote Code Execution
3079904 in MS15-078
Windows Vista x64 Edition Service Pack 2
(3140735)
Moderate
Denial of Service
Critical
Remote Code Execution
3079904 in MS15-078
Windows Server 2008
Windows Server 2008 for 32-bit Systems Service Pack 2
(3140735)
Moderate
Denial of Service
Critical
Remote Code Execution
3079904 in MS15-078
Windows Server 2008 for x64-based Systems Service Pack 2
(3140735)
Moderate
Denial of Service
Critical
Remote Code Execution
3079904 in MS15-078
Windows Server 2008 for Itanium-based Systems Service Pack 2
(3140735)
Moderate
Denial of Service
Critical
Remote Code Execution
3079904 in MS15-078
Windows 7
Windows 7 for 32-bit Systems Service Pack 1
(3140735)
Moderate
Denial of Service
Critical
Remote Code Execution
3079904 in MS15-078
Windows 7 for x64-based Systems Service Pack 1
(3140735)
Moderate
Denial of Service
Critical
Remote Code Execution
3079904 in MS15-078
Windows Server 2008 R2
Windows Server 2008 R2 for x64-based Systems Service Pack 1
(3140735)
Moderate
Denial of Service
Critical
Remote Code Execution
3079904 in MS15-078
Windows Server 2008 R2 for Itanium-based Systems Service Pack 1
(3140735)
Moderate
Denial of Service
Critical
Remote Code Execution
3079904 in MS15-078
Windows 8.1
Windows 8.1 for 32-bit Systems
(3140735)
Moderate
Denial of Service
Critical
Remote Code Execution
3079904 in MS15-078
Windows 8.1 for x64-based Systems
(3140735)
Moderate
Denial of Service
Critical
Remote Code Execution
3079904 in MS15-078
Windows Server 2012 and Windows Server 2012 R2
Windows Server 2012
(3140735)
Moderate
Denial of Service
Critical
Remote Code Execution
None
Windows Server 2012 R2
(3140735)
Moderate
Denial of Service
Critical
Remote Code Execution
3079904 in MS15-078
Windows RT 8.1
Windows RT 8.1[1] (3140735) Moderate
Denial of Service
Critical
Remote Code Execution
3079904 in MS15-078
Windows 10
Windows 10 for 32-bit Systems[2] (3140745) Low
Denial of Service
Critical
Remote Code Execution
3135174
Windows 10 for x64-based Systems[2] (3140745) Low
Denial of Service
Critical
Remote Code Execution
3135174
Windows 10 Version 1511 for 32-bit Systems[2] (3140768) Low
Denial of Service
Critical
Remote Code Execution
3140743
Windows 10 Version 1511 for x64-based Systems[2] (3140768) Low
Denial of Service
Critical
Remote Code Execution
3140743
Server Core installation option
Windows Server 2008 for 32-bit Systems Service Pack 2 (Server Core installation)
(3140735)
Moderate
Denial of Service
Critical
Remote Code Execution
3079904 in MS15-078
Windows Server 2008 for x64-based Systems Service Pack 2 (Server Core installation)
(3140735)
Moderate
Denial of Service
Critical
Remote Code Execution
3079904 in MS15-078
Windows Server 2008 R2 for x64-based Systems Service Pack 1 (Server Core installation)
(3140735)
Moderate
Denial of Service
Critical
Remote Code Execution
3079904 in MS15-078
Windows Server 2012 (Server Core installation)
(3140735)
Moderate
Denial of Service
Critical
Remote Code Execution
3079904 in MS15-078
Windows Server 2012 R2 (Server Core installation)
(3140735)
Moderate
Denial of Service
Critical
Remote Code Execution
3079904 in MS15-078

[1]This update is available via Windows Update.

[2]Windows 10 updates are cumulative. In addition to containing non-security updates, they also contain all of the security fixes for all of the Windows 10-affected vulnerabilities shipping with the monthly security release. The update is available via the Windows Update Catalog.

Note Windows Server Technical Preview 4 is affected. Customers running these operating systems are encouraged to apply the update, which is available via Windows Update.

*The Updates Replaced column shows only the latest update in any chain of superseded updates. For a comprehensive list of updates replaced, go to the Microsoft Update Catalog, search for the update KB number, and then view update details (updates replaced information is provided on the Package Details tab).

Vulnerability Information

OpenType Font Parsing Vulnerability - CVE-2016-0120

A denial of service vulnerability exists in Microsoft Windows when the Windows Adobe Type Manager Library improperly handles specially crafted OpenType fonts. For all systems except Windows 10, an attacker who successfully exploited the vulnerability could cause a denial of service condition. For systems running Windows 10, an attacker who successfully exploited the vulnerability could potentially cause the application to stop responding instead of the system.

There are multiple ways an attacker could exploit the vulnerability, such as by either convincing a user to open a specially crafted document, or by convincing a user to visit a webpage that contains specially crafted embedded OpenType fonts. The update addresses the vulnerability by correcting how the Windows Adobe Type Manager Library handles OpenType fonts.

The following table contains links to the standard entry for each vulnerability in the Common Vulnerabilities and Exposures list:

Vulnerability title CVE number Publicly disclosed Exploited
OpenType Font Parsing Vulnerability CVE-2016-0120 No No

Mitigating Factors

Microsoft has not identified any mitigating factors for this vulnerability.

Workarounds

For more information, see the “Workarounds for OpenType Font Parsing Vulnerabilities” section.

OpenType Font Parsing Vulnerability - CVE-2016-0121

A remote code execution vulnerability exists in Microsoft Windows when the Windows Adobe Type Manager Library improperly handles specially crafted fonts. For all systems except Windows 10, an attacker who successfully exploited the vulnerability could execute code remotely. For systems running Windows 10, an attacker who successfully exploited the vulnerability could execute code in an AppContainer sandbox context with limited privileges and capabilities. An attacker could then install programs; view, change, or delete data; or create new accounts with full user rights.

There are multiple ways an attacker could exploit the vulnerability, such as by either convincing a user to open a specially crafted document, or by convincing a user to visit a webpage that contains specially crafted embedded OpenType fonts. The update addresses the vulnerability by correcting how the Windows Adobe Type Manager Library handles OpenType fonts.

The following table contains links to the standard entry for each vulnerability in the Common Vulnerabilities and Exposures list:

Vulnerability title CVE number Publicly disclosed Exploited
OpenType Font Parsing Vulnerability CVE-2016-0121 No No

Mitigating Factors

Microsoft has not identified any mitigating factors for this vulnerability.

Workarounds

For more information, see the “Workarounds for OpenType Font Parsing Vulnerabilities” section.

Workarounds for OpenType Font Parsing Vulnerabilities

  • Rename ATMFD.DLL
    For 32-bit systems:

    1. Enter the following commands at an administrative command prompt: cd "%windir%\system32" takeown.exe /f atmfd.dll icacls.exe atmfd.dll /save atmfd.dll.acl icacls.exe atmfd.dll /grant Administrators:(F) rename atmfd.dll x-atmfd.dll
    2. Restart the system.

    For 64-bit systems:

    1. Enter the following commands at an administrative command prompt:

          cd "%windir%\system32"  
          takeown.exe /f atmfd.dll  
          icacls.exe atmfd.dll /save atmfd.dll.acl  
          icacls.exe atmfd.dll /grant Administrators:(F)   
          rename atmfd.dll x-atmfd.dll  
          cd "%windir%\syswow64"  
          takeown.exe /f atmfd.dll  
          icacls.exe atmfd.dll /save atmfd.dll.acl  
          icacls.exe atmfd.dll /grant Administrators:(F)   
          rename atmfd.dll x-atmfd.dll
      
    2. Restart the system.

    Optional procedure for Windows 8 and later operating systems (disable ATMFD):

    Note Using Registry Editor incorrectly can cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that problems resulting from the incorrect use of Registry Editor can be solved. Use Registry Editor at your own risk. For information about how to edit the registry, view the "Changing Keys And Values" Help topic in Registry Editor (Regedit.exe) or view the "Add and Delete Information in the Registry" and "Edit Registry Data" Help topics in Regedt32.exe.

    Method 1 (manually edit the system registry):

    1. Run regedit.exe as Administrator.
    2. In Registry Editor, navigate to the following sub key (or create it) and set its DWORD value to 1:

      HKLM\Software\Microsoft\Windows NT\CurrentVersion\Windows\DisableATMFD, DWORD = 1

    3. Close Registry Editor and restart the system.

    Method 2 (use a managed deployment script):

    1. Create a text file named ATMFD-disable.reg that contains the following text:
    Windows Registry Editor Version 5.00  
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows]  
    "DisableATMFD"=dword:00000001
    
    1. Run regedit.exe.
    2. In Registry Editor, click the File menu and then click Import.
    3. Navigate to and select the ATMFD-disable.reg file that you created in the first step.
      (Note If your file is not listed where you expect it to be, ensure that it has not been automatically given a .txt file extension, or change the dialog’s file extension parameters to All Files).
    4. Click Open and then click OK to close Registry Editor.

    Impact of workaround. Applications that rely on embedded font technology will not be displayed properly. Disabling ATMFD.DLL could cause certain applications to stop working properly if they use OpenType fonts. Microsoft Windows does not release any OpenType fonts natively. However, third-party applications could install them and they could be affected by this change.

    How to undo the workaround.

    For 32-bit systems:

    1. Enter the following commands at an administrative command prompt:

      cd "%windir%\system32"  
      rename x-atmfd.dll atmfd.dll  
      icacls.exe atmfd.dll /setowner "NT SERVICE\TrustedInstaller"  
      icacls.exe . /restore atmfd.dll.acl
      
    2. Restart the system.

    For 64-bit systems:

    1. Enter the following commands at an administrative command prompt:

      cd "%windir%\system32"  
      rename x-atmfd.dll atmfd.dll  
      icacls.exe atmfd.dll /setowner "NT SERVICE\TrustedInstaller"  
      icacls.exe . /restore atmfd.dll.acl  
      cd "%windir%\syswow64"  
      rename x-atmfd.dll atmfd.dll  
      icacls.exe atmfd.dll /setowner "NT SERVICE\TrustedInstaller"  
      icacls.exe . /restore atmfd.dll.acl
      
    2. Restart the system.

    Optional procedure for Windows 8 and later operating systems (enable ATMFD):

    Note Using Registry Editor incorrectly can cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that problems resulting from the incorrect use of Registry Editor can be solved. Use Registry Editor at your own risk. For information about how to edit the registry, view the "Changing Keys And Values" Help topic in Registry Editor (Regedit.exe) or view the "Add and Delete Information in the Registry" and "Edit Registry Data" Help topics in Regedt32.exe.

    Method 1 (manually edit the system registry):

    1. Run regedit.exe as Administrator.
    2. In Registry Editor, navigate to the following sub key and set its DWORD value to 0:

      HKLM\Software\Microsoft\Windows NT\CurrentVersion\Windows\DisableATMFD, DWORD = 0

    3. Close Registry Editor and restart the system.

    Method 2 (use a managed deployment script):

    1. Create a text file named ATMFD-enable.reg that contains the following text:

      Windows Registry Editor Version 5.00  
      [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows]  
      "DisableATMFD"=dword:00000000
      
    2. Run regedit.exe.
    3. In Registry Editor, click the File menu and then click Import.
    4. Navigate to and select the ATMFD-enable.reg file that you created in the first step.
      (Note If your file is not listed where you expect it to be, ensure that it has not been automatically given a .txt file extension, or change the dialog’s file extension parameters to All Files).
    5. Click Open and then click OK to close Registry Editor.

    Method 3 (Turn on and use the Blocking Untrusted Fonts feature)

    Note This workaround is only applicable for Windows 10.

    To turn this feature on, off, or to use audit mode:

    1. Open the registry editor (regedit.exe) and go to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Kernel\.
    2. If the MitigationOptions key is not there, right-click and add a new QWORD (64-bit) Value, renaming it to MitigationOptions.
    3. Update the Value data of the MitigationOptions key, and ensure that you keep your existing value, such as in the Important note below:
    4. To turn this feature on. Type 1000000000000.
    5. To turn this feature off. Type 2000000000000.
    6. To audit with this feature. Type 3000000000000.

      Important Save your existing MitigationOptions values during your update. For example, if the current value is 1000, your updated value should be 1000000001000.

    7. Restart the system.

Security Update Deployment

For Security Update Deployment information, see the Microsoft Knowledge Base article referenced here in the Executive Summary.

Acknowledgments

Microsoft recognizes the efforts of those in the security community who help us protect customers through coordinated vulnerability disclosure. See Acknowledgments for more information.

Disclaimer

The information provided in the Microsoft Knowledge Base is provided "as is" without warranty of any kind. Microsoft disclaims all warranties, either express or implied, including the warranties of merchantability and fitness for a particular purpose. In no event shall Microsoft Corporation or its suppliers be liable for any damages whatsoever including direct, indirect, incidental, consequential, loss of business profits or special damages, even if Microsoft Corporation or its suppliers have been advised of the possibility of such damages. Some states do not allow the exclusion or limitation of liability for consequential or incidental damages so the foregoing limitation may not apply.

Revisions

  • V1.0 (March 8, 2016): Bulletin published.

Page generated 2016-03-09 10:39-08:00.