-
Windows 10(用于 32 位系统)
-
Windows 10(用于基于 x64 的系统)
-
Windows 10 版本 1607(用于 32 位系统)
-
Windows 10 版本 1607(用于基于 x64 的系统)
-
Windows 10 版本 1809(用于 32 位系统)
-
Windows 10 版本 1809(用于基于 ARM64 的系统)
-
Windows 10 版本 1809(用于基于 x64 的系统)
-
Windows 10 版本 21H2(用于 32 位系统)
-
Windows 10 版本 21H2(用于基于 ARM64 的系统)
-
Windows 10 版本 21H2(用于基于 x64 的系统)
-
适用于 32 位系统的 Windows 10 版本 22H2
-
Windows 10版本 22H2(适用于基于 ARM64 的系统)
-
Windows 10版本 22H2(适用于基于 x64 的系统)
-
Windows 11版本 21H2(适用于基于 ARM64 的系统)
-
Windows 11版本 21H2(适用于基于 x64 的系统)
-
Windows 11版本 22H2(适用于基于 ARM64 的系统)
-
Windows 11版本 22H2(适用于基于 x64 的系统)
-
Windows Server 2008(用于 32 位系统)Service Pack 2
-
Windows Server 2008(用于 32 位系统)Service Pack 2(服务器核心安装)
-
Windows Server 2008(用于基于 x64 的系统)Service Pack 2
-
Windows Server 2008(用于基于 x64 的系统)Service Pack 2(服务器核心安装)
-
Windows Server 2008 R2(用于基于 x64 的系统)Service Pack 1
-
Windows Server 2008 R2(用于基于 x64 的系统)Service Pack 1(服务器核心安装)
-
Windows Server 2012
-
Windows Server 2012(服务器核心安装)
-
Windows Server 2012 R2
-
Windows Server 2012 R2(服务器核心安装)
-
Windows Server 2016
-
Windows Server 2016(服务器核心安装)
-
Windows Server 2019
-
Windows Server 2019 (服务器核心安装)
-
Windows Server 2022
-
Windows Server 2022(服务器核心安装)
摘要
Microsoft 发布了一个更新,以解决在写字板中使用 OleConvertOLESTREAMToIStorage 和 OleConvertOLESTREAMToIStorageEx 函数中的漏洞,如 CVE-2023-36563 中所述。 请注意,使用这些函数的其他应用程序可能仍存在风险。
OleConvertOLESTREAMToIStorage 和 OleConvertOLESTREAMToIStorageEx 函数用于将 OLE 对象从 OLE 1 存储模型 (OLESTREAM) 转换为 OLE 2 结构化存储对象, (IStorage) 。
当 OLESTREAM 中存在链接对象时,这些函数可能会自动向链接源所在的服务器进行身份验证,以获取转换所需的信息。
如果 OLESTREAM 来自不受信任的源(例如从 Internet 下载的 RTF 文档或基于 RTF 的电子邮件),则用户的 NTLM 凭据可能会在用户不知情的情况下泄露给远程恶意服务器。
使用这些函数将 OLESTREAM 转换为 IStorage 的应用程序可能面临风险。 这些应用程序的一些示例包括 Outlook、Word和写字板 (通过丰富编辑控件来委托这两个函数来转换 RTF) 中包含的 OLESTREAM。
缓解漏洞
如果环境中存在存在此漏洞风险的应用程序,请按照以下步骤来缓解该漏洞。
-
使用以下注册表子项通过可选的应用程序排除列表禁用 OLESTREAM 中链接对象的转换。
警告 使用注册表编辑器或其他方法修改注册表不当可能会出现严重问题。 这些问题可能需要您重新安装操作系统。 Microsoft 不能保证可解决这些问题。 修改注册表的风险由您自行承担。
重要说明 创建此子项是可选的。 此子项不是由系统创建的。 如果需要在 OLESTREAM 中禁用链接对象的转换,则必须创建它。
注册表路径
值名称
禁用
类型
DWORD
值数据
0x00000000 或0x00000001
注意 若要启用链接对象的转换,请使用 0x00000000。 若要禁用链接对象的转换,请使用 0x00000001。 如果在注册表路径中定义了注册表子项,则必须将此值数据定义为 0x00000000 或 0x00000001。
注册表路径
值名称
ExclusionList
类型
REG_MULTI_SZ
值数据
当值 Disabled 设置为 0x00000001 时,应排除的应用程序 .exe 文件的名称。 即使值 Disabled 设置为 0x00000001,这些应用程序中的链接对象的转换仍会启用。 可以将已知可免受此漏洞影响的应用程序添加到列表中。 例如,可以添加 Outlook.exe、Winword.exe Wordpad.exe。 此值是可选的。
-
利用新的 OLE32 API 和丰富编辑控件消息来解决应用程序中的漏洞。 请参阅 MSDN 文档中有关 API 和消息的详细信息。
添加了 API
OLE32 中添加了两个新 API,以帮助开发人员解决其应用程序中的潜在漏洞:
这两个 API 与原始 API 的不同之处在于,应用程序可以传入可选值或回调函数。
可选值可用于禁用 在 OLESTREAM 中找到的任何链接对象的转换。 例如,应用程序可以使用此可选值在文档预览模式下禁用链接对象的转换。
如果应禁用 在 OLESTREAM 中找到的链接对象,回调函数可以查询应用程序。 应用程序可以使用回调函数传递的链接对象的特定信息来做出更好的决策。 例如,仅当链接对象位于受信任的服务器上时,应用程序才允许转换链接对象。
添加了丰富编辑控件消息
添加了两条新的 Rich Edit Control 消息,以帮助开发人员解决其应用程序中使用丰富编辑控件处理 RTF 的潜在漏洞。
-
EM_SETDISABLEOLELINKCONVERSION 此消息可用于告知 Rich Edit Control 禁用 OLESTREAM 中包含的链接对象的转换。
-
EM_SETQUERYCONVERTOLELINKCALLBACK 此消息可用于将回调函数传递给 Rich Edit Control。 如果是否应转换 OLESTREAM 中包含的链接对象,Rich Edit Control 将使用回调函数来查询应用程序。
-