MS16-087:Windows 打印后台处理程序组件安全更新:2016 年 7 月 12 日

适用于: Windows Server 2012 R2 DatacenterWindows Server 2012 R2 StandardWindows Server 2012 R2 Essentials

通知


该安全更新于 2017 年 9 月 12 日重新发布,以解决 CVE-2016-3238 的 3170455 更新中的已知问题。

Microsoft 已经为当前支持的 Microsoft Windows 版本提供了以下更新。 有关更多信息,请转到以下 Microsoft 知识库中文章:

  • 适用于 Windows Server 2008 的重新发布的更新 3170455 
  • 适用于 Windows 7 和 Windows Server 2008 R2 的每月汇总补丁 4038777 和安全更新 4038779 
  • 适用于 Windows Server 2012 的每月汇总补丁 4038799 和安全更新 4038786 
  • 适用于 Windows 8.1 和 Windows Server 2012 R2 的每月汇总补丁 4038792 和安全更新 4038793 
  • 适用于 Windows 10 的累积更新 4038781 
  • 适用于 Windows 10 版本 1511 的累积更新 4038781 
  • 适用于 Windows 10 版本 1607 和 Windows Server 2016 的累积更新 4038782 

Microsoft 建议运行 Windows Server 2008 的客户重新安装更新 3170455。 Microsoft 建议运行其他受支持版本的 Windows 的客户安装相应的更新。 有关更多信息,请转到 Microsoft 知识库文章 3170455


MS16-087 重新发布的版本中包含的其他更改

  • 添加了事件日志,以帮助确定打印机驱动程序安装错误的原因

以前,客户了解驱动程序为什么执行新的限制检查(作为 MS16-087 的一部分执行)失败的唯一方法是,收集打印 etw 日志,然后发送给 Microsoft 进行分析。

我们添加了将失败原因记录到事件记录程序的功能,以便客户可以自己调查驱动程序失败的根本原因。

将记录的信息:

1. 如果驱动程序不能感知驱动程序或未正确签名,则会记录以下消息:

MSG_CSRSPL_UNTRUSTED_DRIVER: "The print spooler failed to download package for driver <driverName>. Error code= <errorCodeFromListBelow>. Blocking driver as there could be a possibility of potential tampering."

2. 如果驱动程序通过使用提供的目录无法验证签名,则会记录以下消息:

VALIDATEDRVINFO_FAILED: "In VALIDATINGDRVINFO, Adding printer driver <driverName> failed, error code <errorCodeFromListBelow>.

Possible Error codes:

代码

含义

0x800F0243L

Publisher 不可信

0x800F024BL

哈希不在目录中

0x800F022FL

OEM INF 没有目录

0x800F023FL

无验证码目录

0x800F0240L

不允许使用验证码

0x800F0249L

通用“驱动程序安装被阻止”

 

概要


此安全更新修复了 Microsoft Windows 中的漏洞。 如果攻击者能够在工作站或打印服务器上执行中间人 (MiTM) 攻击或在目标网络上设置恶意打印服务器,最严重的漏洞可能允许远程执行代码。

若要了解此漏洞的更多信息,请参阅 Microsoft 安全公告 MS16-087

更多信息


重要提示
 
  • 安装此安全更新程序后,为了将指向并打印驱动程序从打印服务器部署到客户端,必须应用以下 Windows 8.1 或 Windows Server 2012 R2 打印机服务器上的 Windows 更新汇总:
    3000850 Windows RT 8.1、Windows 8.1 和 Windows Server 2012 R2 更新汇总(2014 年 11 月)
  • 今后所有适用于 Windows RT 8.1、Windows 8.1 和 Windows Server 2012 R2 的安全更新和非安全更新均要求安装更新 2919355。 我们建议在基于 Windows RT 8.1、Windows 8.1 或 Windows Server 2012 R2 的计算机上安装更新 2919355,以便今后持续接收更新。
  • 如果在安装此更新程序后安装语言包,则必须重新安装此更新程序。 因此,我们建议先安装所需的全部语言包,然后再安装此更新程序。 有关更多信息,请参阅添加语言包至 Windows

有关此安全更新的其他信息


下列文章包含此安全更新针对具体产品版本的其他信息。 文章可能包含已知问题的信息。
 
  • 3170455 MS16-087: Windows 打印后台处理程序组件安全更新说明: 2016 年 7 月 12 日
  • 3163912 Windows 10 累积更新: 2016 年 7 月 12 日
  • 3172985 Windows 10 版本 1511 和 Windows Server 2016 Technical Preview 4 累积更新: 2016 年 7 月 12 日
 

已知问题

如果在你的系统环境中使用网络打印,则可能会遇到下面其中的一个问题:
 
  • 你可能会收到一条警告,提示你安装一个打印机驱动,否则在应用 MS16-087 后,驱动可能无法安装,并且不通知。 此现象取决于具体情形。
     

    情形 1

    对于无可识别程序包的 v3 打印机驱动,在用户尝试连接指向并打印打印机时,可能显示以下警告信息:

    你信任此打印机吗?
     

    情形 2

    有可识别程序包驱动必须使用信任证书进行签名。 验证过程将检查驱动内包括的所有文件是否散列于目录中。 如果验证失败,此驱动会被认为不可信任。 此时,驱动安装会被阻止,并显示以下警告信息:

    添加打印机
     

    情形 3

    对于非交互情形(例如,打印机已通过自动脚本安装),如果打印机驱动符合情形 1 或情形 2 描述的条件,打印机安装失败且不显示警告信息。

    此时,请联系你的网络管理员,以从打印机制造商处获得更新版本的驱动。

    网络管理员指南
     
    • 更新受影响的打印机驱动。 有可识别程序包的 V3 打印机驱动已引入 Windows Vista 中。 安装一个有可识别程序包的打印机驱动来解决此问题。
    • 如果特定旧的打印机没有适合的可用打印机驱动,可在客户端系统上预装产生问题的打印机驱动来解决此问题。
    有关这些情形的详细信息,请参阅下列 Microsoft 资源:
     
  • 应用安全更新程序 MS16-087 (KB 3170455) 并尝试连接到在运行 Windows 8.1 或 Windows Server 2012 R2 的系统上安装的受信任程序包可感知打印机之后,无法连接到打印机。

    要解决此问题,请应用下列有关 Windows 8.1 和 Windows Server 2012 R2 打印机的 Windows 更新汇总。
    3000850 Windows RT 8.1、Windows 8.1 和 Windows Server 2012 R2 更新汇总(2014 年 11 月)

2016 年 10 月更新: 已知问题缓解措施

Microsoft 已发布 2016 年 10 月更新,此更新可允许网络管理员配置允许安装他们认为安全的打印驱动程序的策略。 此更新还允许网络管理员部署他们认为安全的打印机连接。

这些更新包含在以下汇总程序包中。

 
Windows 10 RTM KB 3192440
Windows 10 1511 KB 3192441
Windows 10 1607 KB 3194798
Windows 7 和 Windows Server 2008 R2 KB 3192403
Windows Server 2012 KB 3192406
Windows 8.1 和 Windows Server 2012 R2 KB 3192404

配置组策略以将打印服务器添加到允许的列表

  1. 单击“开始”,然后单击“运行”
  2. 键入 gpedit.msc,然后单击“确定”
  3. 展开“计算机配置”,然后展开“管理模板”
  4. 单击“打印机”
  5. 双击“指向并打印限制”,然后选择“已启用”选项。
  6. 在“选项”下,选中“用户只能指向并打印到这些服务器”复选框,然后在文本框中键入以分号分隔的完全限定服务器名称。
  7. 在“安全提示”下,在“安装新连接的驱动程序时”和“更新现有连接的驱动程序时”列表中选择“不显示警告或提升提示”
  8. 单击“应用”,然后单击“确定”
  9. 在“打印机”策略页面中,双击“程序包指向并打印 – 批准的服务器”
  10. 选择“已启用”选项。
  11. 在“选项”下,单击“显示”
  12. 在每行中键入一个完全限定服务器名称。
  13. 单击“确定”。
  14. 单击“应用”,然后单击“确定”
  15. 如果你正在使用独立客户端,请重启该客户端,然后确认这些策略已生效。
  16. 如果你正在使用域策略,请将这些策略推送到域客户端,然后确认这些策略已生效。
注意 启用这些组策略之后,必须将所有打印机服务器添加到“指向并打印限制”列表和“程序包指向并打印 – 批准的服务器”列表。 此条件成立,不管程序包是否可感知。
 

2016 年 10 月更新常见问题解答

  • 问题: 我们是否应卸载较低版本的更新?
    回答: 否。较低版本的更新修复了漏洞。 2016 年 10 月更新提供了缓解措施,使网络管理员可以安装他们认为安全的驱动程序。
  • 问题: 即使安装了 2016 年 10 月更新并配置了组策略,我尝试安装本地打印机时,仍显示“你是否信任此打印机?”消息。 原因何在?
    回答: 此缓解措施针对网络打印机而不是本地打印机,因此,此行为在预料之内。

    注意 如果你收到“你是否信任此打印机?”消息,请通过使用受信任的程序包可感知驱动程序替换当前驱动程序,或在安装本地打印机之前将驱动程序文件安装到本地驱动程序存储。 有关详细信息,请参阅网络管理员指南部分。

如何获取和安装该更新


方法 1: Windows 更新

可以通过 Windows 更新获取此更新。 当你开启自动更新后,系统会自动下载并安装此更新。 有关如何开启自动更新的更多信息,请参阅自动获取安全更新程序。 

注意 对于 Windows RT 8.1,此更新仅可通过 Windows 更新获得。