KB5004442 - 管理 Windows DCOM Server 安全功能绕过 (CVE-2021-26414) 的更改

应用对象
Windows 10, version 2004, all editions Windows Server version 2004 Windows 10, version 20H2, all editions Windows Server, version 20H2, all editions Windows 10, version 21H1, all editions Windows 10 Enterprise, version 1909 Windows 10 Enterprise and Education, version 1909 Windows 10 IoT Enterprise, version 1909 Win 10 Ent LTSC 2019 Win 10 IoT Ent LTSC 2019 Windows 10 IoT Core LTSC Windows Server 2019 Windows 10, version 1607, all editions Windows Server 2016, all editions Windows 10 Windows 8.1 Windows Server 2012 R2 Windows Embedded 8.1 Industry Enterprise Windows Embedded 8.1 Industry Pro Windows Server 2012 Windows Embedded 8 Standard Windows 7 Windows Server 2008 R2 Windows Embedded Standard 7 ESU Windows Embedded POSReady 7 ESU Windows Thin PC Windows Server 2008 Windows 11 Windows Server 2022 Windows 11 version 22H2, all editions

注意

已更新 2023 年 3 月 20 日 - 可用性部分

摘要

分布式组件对象模型 (DCOM) 远程协议是一种使用远程过程调用 (RPC 公开应用程序对象的协议) 。 DCOM 用于联网设备的软件组件之间的通信。 CVE-2021-26414 需要在 DCOM 中进行强化更改。 因此,建议验证环境中使用 DCOM 或 RPC 的客户端或服务器应用程序是否按预期工作,并启用强化更改。

备注 我们强烈建议您安装最新的可用安全更新。 它们提供针对最新安全威胁的高级保护。 它们还提供我们为支持迁移而添加的功能。 有关强化 DCOM 的详细信息和上下文,请参阅 DCOM 身份验证强化:您需要了解的内容。

DCOM 更新的第一阶段于 2021 年 6 月 8 日发布。 在该更新中,默认情况下禁用了 DCOM 强化。 可以通过修改注册表来启用它们,如下面的“用于启用或禁用强化更改的注册表设置”部分中所述。 DCOM 更新的第二阶段于 2022 年 6 月 14 日发布。 这会将强化更改为默认启用,但保留了使用注册表项设置禁用更改的功能。 DCOM 更新的最后阶段将于 2023 年 3 月发布。 它将使 DCOM 强化保持启用状态,并删除禁用它的功能。

日程表

更新版本 行为更改
2021 年 6 月 8 日 第 1 阶段发布 - 默认禁用强化更改,但能够使用注册表项启用更改。
2022 年 6 月 14 日 第 2 阶段发布 - 默认启用强化更改,但能够使用注册表项禁用更改。
2023 年 3 月 14 日 第 3 阶段发布 - 默认启用强化更改且无法禁用它们。 此时,必须解决环境中与强化更改和应用程序的任何兼容性问题。

测试 DCOM 强化兼容性

新的 DCOM 错误事件

为了帮助识别在启用 DCOM 安全强化更改后可能存在兼容性问题的应用程序,我们在系统日志中添加了新的 DCOM 错误事件。 请参阅下表。 如果系统检测到 DCOM 客户端应用程序正尝试使用低于 RPC_C_AUTHN_LEVEL_PKT_INTEGRITY 的身份验证级别激活 DCOM 服务器,它将记录这些事件。 可以从服务器端事件日志跟踪到客户端设备,并使用客户端事件日志查找应用程序。

服务器事件 - 指示服务器正在接收较低级别的请求

事件 ID 消息
10036 “服务器端身份验证级别策略不允许用户从地址 %4) %1\%2 SID (%3 激活 DCOM 服务器。 请至少在客户端应用程序中将激活身份验证级别提高到 RPC_C_AUTHN_LEVEL_PKT_INTEGRITY。”
(%1 - 域,%2 - 用户名,%3 - 用户 SID,%4 - 客户端 IP 地址)

客户端事件 - 指示哪个应用程序正在发送较低级别的请求

事件 ID 消息
10037 “PID 为 %2 的应用程序 %1 正在请求激活计算机 %4 上的 CLSID %3,并将身份验证级别显式设置为 %5。 DCOM 要求的最低激活身份验证级别为 5 (RPC_C_AUTHN_LEVEL_PKT_INTEGRITY) 。 要提高激活身份验证级别,请联系应用程序供应商。”
10038 “PID 为 %2 的应用程序 %1 正在请求激活计算机 %4 上的 CLSID %3,默认激活身份验证级别为 %5。 DCOM 要求的最低激活身份验证级别为 5 (RPC_C_AUTHN_LEVEL_PKT_INTEGRITY) 。 要提高激活身份验证级别,请联系应用程序供应商。”
(%1 - 应用程序路径,%2 - 应用程序 PID,%3 - 应用程序请求激活的 COM 类的 CLSID,%4 - 计算机名称,%5 - 身份验证级别) 的值

可用性

这些错误事件仅适用于 Windows 版本的子集;请参阅下表。

Windows 版本 在这些日期当天或之后可用
Windows Server 2022 2021 年 9 月 27 日
KB5005619
Windows 10 版本 2004、Windows 10 版本 20H2、Windows 10 版本 21H1 2021 年 9 月 1 日
KB5005101
Windows 10,版本 1909 2021 年 8 月 26 日
KB5005103
Windows Server 2019,Windows 10 版本 1809 2021 年 8 月 26 日
KB5005102
Windows Server 2016,Windows 10 版本 1607 2021 年 9 月 14 日
KB5005573
Windows Server 2012 R2 和 Windows 8.1 2021 年 10 月 12 日
KB5006714
Windows 11 版本 22H2 2022 年 9 月 30 日
KB5017389

客户端请求自动提升权限修补程序

所有非匿名激活请求的身份验证级别

为了帮助减少应用兼容性问题,我们已自动将来自基于 Windows 的 DCOM 客户端的所有非匿名激活请求的身份验证级别提高到最低 RPC_C_AUTHN_LEVEL_PKT_INTEGRITY。 通过此更改,将自动接受大多数基于 Windows 的 DCOM 客户端请求,并在服务器端启用 DCOM 强化更改,而无需对 DCOM 客户端进行任何进一步修改。 此外,大多数 Windows DCOM 客户端将自动适用于服务器端的 DCOM 强化更改,而无需对 DCOM 客户端进行任何进一步修改。

备注 此修补程序将继续包含在累积更新中。

补丁更新时间线

自 2022 年 11 月初始发布以来,自动提升修补程序进行了一些更新。

  • 2022 年 11 月更新

    • 此更新自动将激活身份验证级别提升到数据包完整性。 默认情况下,此更改在 Windows Server 2016 和 Windows Server 2019 上处于禁用状态。
  • 2022 年 12 月更新

    • 默认情况下,Windows Server 2016 和 Windows Server 2019 启用了 11 月更改。
    • 此更新还解决了影响 Windows Server 2016 和 Windows Server 2019 上的匿名激活的问题。
  • 2023 年 1 月更新

    • 此更新解决了从 2008 Windows Server 到 2015 年 7 月) 发布的初始版本Windows 10 (平台上影响匿名激活的问题。

如果已在客户端和服务器上安装了截至 2023 年 1 月的累积安全更新,它们将完全启用最新的自动提升修补程序。

用于启用或禁用强化更改的注册表设置

在可以启用或禁用 CVE-2021-26414 强化更改的时间线阶段,可以使用以下注册表项:

  • 路径:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole\AppCompat
  • 值名称: “RequireIntegrityActivationAuthenticationLevel”
  • 类型:dword
  • 值数据:default= 0x00000000表示已禁用。 0x00000001表示已启用。 如果未定义此值,它将默认为“启用”。

备注 必须以十六进制格式输入值数据。

重要 设置此注册表项后,必须重启设备才能使其生效。

备注 启用上述注册表项将使 DCOM 服务器强制使用 RPC_C_AUTHN_LEVEL_PKT_INTEGRITY 或更高的激活 Authentication-Level。 这不会影响匿名激活 (使用身份验证级别 RPC_C_AUTHN_LEVEL_NONE) 的激活。 如果 DCOM 服务器允许匿名激活,则即使启用了 DCOM 强化更改,仍允许匿名激活。

备注 默认情况下,此注册表值不存在;您必须创建它。 如果存在,Windows 将读取它,并且不会覆盖它。

备注 安装更高版本的更新既不会更改也不会删除现有的注册表项和设置。