Microsoft 安全公告 MS16-026 - 严重

用于解决远程代码执行的图形字体安全更新(3143148)

发布时间: 2016 年 3 月 8 日

版本: 1.0

执行摘要

此安全更新可解决 Microsoft Windows 中的漏洞。 如果攻击者说服用户打开特制的文档,或者访问包含专门制作的 OpenType 字体的网页,则更严重的漏洞可能会允许远程代码执行。

对于所有受支持的 Windows 版本,此安全更新都被评为“严重”。 有关详细信息,请参阅 “受影响的软件 ”部分。

安全更新通过更正 Windows Adobe Type Manager 库处理 OpenType 字体的方式来解决漏洞。

有关漏洞的详细信息,请参阅 “漏洞信息 ”部分。

有关此更新的详细信息,请参阅 Microsoft 知识库文章3143148

受影响的软件和漏洞严重性分级

以下软件版本或版本受到影响。 未列出的版本或版本要么超过其支持生命周期,要么不受影响。 若要确定软件版本或版本的支持生命周期,请参阅Microsoft 支持部门生命周期

每个受影响的软件所指示的严重性分级假定该漏洞的潜在最大影响。 有关此安全公告发布 30 天内漏洞的可利用性及其严重性评级和安全影响的信息,请参阅 3 月公告摘要中的“可利用性索引”。

操作系统 OpenType 字体分析漏洞 - CVE-2016-0120 OpenType 字体分析漏洞 - CVE-2016-0121 已替换汇报*
Windows Vista
Windows Vista Service Pack 2 (3140735) 中等 拒绝服务 关键 远程代码执行 MS15-078 中的 3079904
Windows Vista x64 Edition Service Pack 2 (3140735) 中等 拒绝服务 关键 远程代码执行 MS15-078 中的 3079904
Windows Server 2008
Windows Server 2008 for 32 位系统 Service Pack 2 (3140735) 中等 拒绝服务 关键 远程代码执行 MS15-078 中的 3079904
基于 x64 的系统 Service Pack 2 的 Windows Server 2008 (3140735) 中等 拒绝服务 关键 远程代码执行 MS15-078 中的 3079904
基于 Itanium 的系统 Service Pack 2 的 Windows Server 2008 (3140735) 中等 拒绝服务 关键 远程代码执行 MS15-078 中的 3079904
Windows 7
Windows 7 for 32 位系统 Service Pack 1 (3140735) 中等 拒绝服务 关键 远程代码执行 MS15-078 中的 3079904
基于 x64 的系统 Service Pack 1 的 Windows 7 (3140735) 中等 拒绝服务 关键 远程代码执行 MS15-078 中的 3079904
Windows Server 2008 R2
基于 x64 的系统 Service Pack 1 的 Windows Server 2008 R2 (3140735) 中等 拒绝服务 关键 远程代码执行 MS15-078 中的 3079904
基于 Itanium 的系统 Service Pack 1 的 Windows Server 2008 R2 (3140735) 中等 拒绝服务 关键 远程代码执行 MS15-078 中的 3079904
Windows 8.1
适用于 32 位系统的 Windows 8.1 (3140735) 中等 拒绝服务 关键 远程代码执行 MS15-078 中的 3079904
基于 x64 的系统 (3140735) 的 Windows 8.1 中等 拒绝服务 关键 远程代码执行 MS15-078 中的 3079904
Windows Server 2012 和 Windows Server 2012 R2
Windows Server 2012 (3140735) 中等 拒绝服务 关键 远程代码执行
Windows Server 2012 R2 (3140735) 中等 拒绝服务 关键 远程代码执行 MS15-078 中的 3079904
Windows RT 8.1
Windows RT 8.1[1](3140735) 中等 拒绝服务 关键 远程代码执行 MS15-078 中的 3079904
Windows 10
Windows 10 for 32 位系统[2](3140745) 拒绝服务 关键 远程代码执行 3135174
基于 x64 的系统 Windows 10[2](3140745) 拒绝服务 关键 远程代码执行 3135174
适用于 32 位系统的 Windows 10 版本 1511[2](3140768) 拒绝服务 关键 远程代码执行 3140743
基于 x64 的系统 Windows 10 版本 1511[2](3140768) 拒绝服务 关键 远程代码执行 3140743
服务器核心安装选项
Windows Server 2008 for 32 位系统 Service Pack 2 (服务器核心安装) (3140735) 中等 拒绝服务 关键 远程代码执行 MS15-078 中的 3079904
Windows Server 2008 for x64 based Systems Service Pack 2 (Server Core installation) (3140735) 中等 拒绝服务 关键 远程代码执行 MS15-078 中的 3079904
基于 x64 的系统 Service Pack 1 (服务器核心安装)的 Windows Server 2008 R2(3140735) 中等 拒绝服务 关键 远程代码执行 MS15-078 中的 3079904
Windows Server 2012 (服务器核心安装) (3140735) 中等 拒绝服务 关键 远程代码执行 MS15-078 中的 3079904
Windows Server 2012 R2 (服务器核心安装) (3140735) 中等 拒绝服务 关键 远程代码执行 MS15-078 中的 3079904

[1]此更新通过Windows 更新提供。

[2]Windows 10 更新是累积更新。 除了包含非安全更新之外,它们还包含随每月安全版本一起提供的所有受 Windows 10 影响的漏洞的所有安全修补程序。 可通过Windows 更新目录获取更新。

请注意 ,Windows Server Technical Preview 4 受到影响。 鼓励运行这些操作系统的客户应用通过Windows 更新提供的更新。

*汇报替换列仅显示被取代更新链中的最新更新。 有关替换的更新的完整列表,请转到 Microsoft 更新目录,搜索更新知识库(KB)编号,然后查看更新详细信息(更新替换的信息是在“程序包详细信息”选项卡上提供的)。

漏洞信息

OpenType 字体分析漏洞 - CVE-2016-0120

当 Windows Adobe 类型管理器库处理专门制作的 OpenType 字体时,Microsoft Windows 中存在拒绝服务漏洞。 对于除 Windows 10 之外的所有系统,成功利用漏洞的攻击者可能会导致拒绝服务条件。 对于运行 Windows 10 的系统,成功利用漏洞的攻击者可能会导致应用程序停止响应而不是系统。

攻击者可以通过多种方式利用漏洞,例如说服用户打开特制文档,或者说服用户访问包含专门制作的 OpenType 字体的网页。 更新通过更正 Windows Adobe Type Manager 库处理 OpenType 字体的方式来解决漏洞。

下表包含指向常见漏洞和公开列表中的每个漏洞的标准条目的链接:

漏洞标题 CVE 编号 公开披露 利用
OpenType 字体分析漏洞 CVE-2016-0120

缓解因素

Microsoft 尚未识别此漏洞的任何 缓解因素

解决方法

有关详细信息,请参阅“OpenType 字体分析漏洞的解决方法”部分。

OpenType 字体分析漏洞 - CVE-2016-0121

当 Windows Adobe 类型管理器库处理特制字体时,Microsoft Windows 中存在远程代码执行漏洞。 对于除 Windows 10 之外的所有系统,成功利用漏洞的攻击者可以远程执行代码。 对于运行 Windows 10 的系统,成功利用漏洞的攻击者可以在具有有限特权和功能的 AppContainer 沙盒上下文中执行代码。 然后,攻击者可能会安装程序、查看更改项或删除数据,还可能会使用完全用户权限创建新的帐户。

攻击者可以通过多种方式利用漏洞,例如说服用户打开特制文档,或者说服用户访问包含专门制作的 OpenType 字体的网页。 更新通过更正 Windows Adobe Type Manager 库处理 OpenType 字体的方式来解决漏洞。

下表包含指向常见漏洞和公开列表中的每个漏洞的标准条目的链接:

漏洞标题 CVE 编号 公开披露 利用
OpenType 字体分析漏洞 CVE-2016-0121

缓解因素

Microsoft 尚未识别此漏洞的任何 缓解因素

解决方法

有关详细信息,请参阅“OpenType 字体分析漏洞的解决方法”部分。

OpenType 字体分析漏洞的解决方法

  • 重命名ATMFD.DLL
    对于 32 位系统:

    1. 在管理命令提示符处输入以下命令:
        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 
    
    1. 重新启动系统。

    对于 64 位系统:

    1. 在管理命令提示符处输入以下命令:

          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. 重新启动系统。  

    Windows 8 及更高版本的操作系统(禁用 ATMFD)的可选过程:

    请注意 ,错误地使用注册表编辑器可能会导致严重问题,可能需要重新安装操作系统。 Microsoft 无法保证可以解决因不正确地使用注册表编辑器而导致的问题。 请慎用注册表编辑器,风险自负。 有关如何编辑注册表的信息,请查看注册表编辑器(Regedit.exe)中的“更改键和值”帮助主题,或在Regedt32.exe中查看“在注册表中添加和删除信息”和“编辑注册表数据”帮助主题。

    方法 1 (手动编辑系统注册表):

    1. 以 管理员istrator 身份运行regedit.exe。

    2. 在注册表编辑器中,导航到以下子项(或创建它),并将其 DWORD 值设置为 1:

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

    3. 关闭注册表编辑器并重启系统。

    方法 2 (使用托管部署脚本):

    1. 创建一个名为 ATMFD-disable.reg 的文本文件,其中包含以下文本:
    Windows Registry Editor Version 5.00  
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows]  
    "DisableATMFD"=dword:00000001
    
    1. 运行 Regedit.exe 。
    2. 在注册表编辑器中 ,单击“文件” 菜单,然后单击“ 导入”。
    3. 导航到并在 第一步中创建的ATMFD-disable.reg 文件。
      请注意 ,如果文件未在预期位置列出,请确保该文件未自动获得.txt文件扩展名,或者将对话框的文件扩展名参数更改为 “所有文件”)。
    4. 单击“打开,然后单击“确定关闭注册表编辑器。

    解决方法的影响。 依赖嵌入式字体技术的应用程序将不会正确显示。 禁用ATMFD.DLL可能会导致某些应用程序在使用 OpenType 字体时停止正常工作。 Microsoft Windows 不会以本机方式发布任何 OpenType 字体。 但是,第三方应用程序可以安装它们,并且它们可能会受到此更改的影响。

    如何撤消解决方法。

    对于 32 位系统:

    1. 在管理命令提示符处输入以下命令:

      cd "%windir%\system32"  
      rename x-atmfd.dll atmfd.dll  
      icacls.exe atmfd.dll /setowner "NT SERVICE\TrustedInstaller"  
      icacls.exe . /restore atmfd.dll.acl
      
    2. 重新启动系统。  

    对于 64 位系统:

    1. 在管理命令提示符处输入以下命令:

      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. 重新启动系统。

    Windows 8 及更高版本的操作系统(启用 ATMFD)的可选过程:

    请注意 ,错误地使用注册表编辑器可能会导致严重问题,可能需要重新安装操作系统。 Microsoft 无法保证可以解决因不正确地使用注册表编辑器而导致的问题。 请慎用注册表编辑器,风险自负。 有关如何编辑注册表的信息,请查看注册表编辑器(Regedit.exe)中的“更改键和值”帮助主题,或在Regedt32.exe中查看“在注册表中添加和删除信息”和“编辑注册表数据”帮助主题。

    方法 1 (手动编辑系统注册表):

    1. 以 管理员istrator 身份运行regedit.exe。

    2. 在注册表编辑器中,导航到以下子项,并将其 DWORD 值设置为 0:

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

    3. 关闭注册表编辑器并重启系统。

    方法 2 (使用托管部署脚本):

    1. 创建一个名为 ATMFD-enable.reg 的文本文件,其中包含以下文本:

      Windows Registry Editor Version 5.00  
      [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows]  
      "DisableATMFD"=dword:00000000
      
    2. 运行 Regedit.exe 。

    3. 在注册表编辑器中 ,单击“文件” 菜单,然后单击“ 导入”。

    4. 导航到并在 第一步中创建的ATMFD-enable.reg 文件。
      请注意 ,如果文件未在预期位置列出,请确保该文件未自动获得.txt文件扩展名,或者将对话框的文件扩展名参数更改为 “所有文件”)。

    5. 单击“打开,然后单击“确定关闭注册表编辑器。  

    方法 3 (打开和使用“阻止不受信任的字体”功能)

    请注意 ,此解决方法仅适用于 Windows 10。

    若要打开、关闭或使用审核模式,请执行以下操作:

    1. 打开注册表编辑器(regedit.exe),转到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Kernel\

    2. 如果 MitigationOptions 密钥不存在,请右键单击并添加新的 QWORD (64 位) 值,将其重命名为 MitigationOptions

    3. 更新 MitigationOptions 密钥的值数据,并确保保留现有值,如以下重要说明:

    4. 打开此功能。 类型 1000000000000。

    5. 关闭此功能。 类型 2000000000000。

    6. 使用此功能进行审核。 键入 30000000000000。

      重要说明 :在更新过程中保存现有的 MitigationOptions 值。 例如,如果当前值为 1000,则更新的值应 1000000001000

    7. 重新启动系统。

安全更新部署

有关安全更新部署信息,请参阅“执行摘要”中引用的 Microsoft 知识库文章。

致谢

Microsoft 认识到安全社区中那些帮助我们通过协调漏洞披露来保护客户的努力。 有关详细信息,请参阅确认。

免责声明

Microsoft 知识库中提供的信息“按原样”提供,不提供任何形式的担保。 Microsoft 不明确或暗示所有保证,包括适销性和针对特定用途的适用性和适用性的保证。 在任何情况下,Microsoft Corporation 或其供应商都应对任何损害负责,包括直接、间接、附带、后果性、业务利润损失或特殊损害,即使 Microsoft Corporation 或其供应商被告知存在此类损害的可能性。 某些州不允许排除或限制后果性或附带性损害的责任,因此上述限制可能不适用。

修订

  • V1.0(2016 年 3 月 8 日):公告已发布。

页面生成的 2016-03-09 10:39-08:00。