你目前正处于脱机状态,正在等待 Internet 重新连接

Microsoft 安全通报: 在 Internet Explorer 中的漏洞可能允许远程代码执行

Support for Windows XP has ended

Microsoft ended support for Windows XP on April 8, 2014. This change has affected your software updates and security options. Learn what this means for you and how to stay protected.

Support for Windows Server 2003 ended on July 14, 2015

Microsoft ended support for Windows Server 2003 on July 14, 2015. This change has affected your software updates and security options. Learn what this means for you and how to stay protected.

注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。

点击这里察看该文章的英文版: 961051
简介
Microsoft 发布了 Microsoft 安全通报有关此问题的 IT 专业人员。该安全通报包含其他与安全相关的信息。若要访问安全通报请访问下面的 Microsoft 网站:
替代方法
要变通解决此问题,使用下列方法之一。

注意您必须运行命令以管理员身份这篇文章中所述。在 Windows Vista 和 Windows Server 2008,您必须从提升命令提示符运行命令。要打开提升的命令提示符,请按照下列步骤操作:
  1. 单击 开始,在搜索框中键入 cmd,然后按 ENTER 键。
  2. 在结果列表中右键单击 cmd,然后单击 以管理员身份运行

方法 1: 使用一个系统访问控制列表 (SACL) 的更少的应用程序禁用 OLEDB32.dll

此变通方法类似于在"使用 SACL 以禁用 OLEDB32.dll 的条目"本文内下文中介绍的解决方法。此替代方法是关于哪些应用程序被阻止访问 OLEDB32.DLL 更具选择性。Internet Explorer 仍被阻止。但是,大多数其他应用程序不能。这可以保护 Internet Explorer 受攻击的好处。但是,它仍会使依赖于 OLEDB32.DLL 才能正常工作的其他应用程序。

为这种选择性保护此变通方法依赖于这一事实,Internet Explorer 将使用默认情况下,打开保护模式运行。这意味着 iexplore.exe 进程运行在较低的完整性级别。 这意味着,这是如何工作有关的详细信息请访问下面的 Microsoft 网页: 完整性机制使块进程中写入到安全对象 (例如,具有较高的完整性级别的文件。通过将一个特殊的完整性级别项应用于对象的 SACL 执行此操作。

注意也可能是阻止从能够读取或执行更高的完整性级别的安全对象的过程。

如何使用此替代方法

备注
  • 这种解决方法仅适用于 Windows Vista 和更高版本的 Windows。
  • 若要用于此替代方法必须在 Internet Explorer 运行与保护模式下打开。这要求已启用保护模式和用户帐户控制 (UAC)。这是默认设置。若要确定是否已启用保护模式,检查 Internet Explorer 状态栏。
若要用于此替代方法,请按照下列步骤操作:
  1. 将以下文本保存到一个临时文件夹:
    • 对于 32 位系统
      将以下文本保存到一个文本文件,名为"BlockAccess_x86.inf":
      [Unicode]Unicode=yes[Version]signature="$CHICAGO$"Revision=1[File Security]"%ProgramFiles%\Common Files\System\Ole DB\oledb32.dll",2,"S:(ML;;NWNRNX;;;ME)"
    • 对于 64 位系统
      将以下文本保存到一个文本文件,名为"BlockAccess_x86.inf":
       [Unicode]Unicode=yes[Version]signature="$CHICAGO$"Revision=1[File Security]"%ProgramFiles%\Common Files\System\Ole DB\oledb32.dll",2,"S:(ML;;NWNRNX;;;ME)"
      保存到名为"BlockAccess_x64.inf"的文本文件的以下文本:
       [Unicode]Unicode=yes[Version]signature="$CHICAGO$"Revision=1[File Security]"%ProgramFiles%\Common Files\System\Ole DB\oledb32.dll",2,"S:(ML;;NWNRNX;;;ME)"
  2. 打开临时文件夹中的提升的管理员命令提示符。
  3. 命令提示符键入下面的命令,然后按 ENTER 键:
    secedit/配置/db BlockAccess.sdb/cfg < inf 文件 >
  4. 在命令完成后,您应收到一条消息,类似于以下内容:
    该任务已成功完成。
    请参阅 %windir%\Security\Logs\Scesrv.log 文件有关的详细信息。

如何验证此解决方法

使用 icacls 命令可以确定是否已应用该替代方法。若要执行此操作使用下列值之一:
  • 对于 32 位操作系统
    命令提示符键入下面的命令,然后按 ENTER 键:
    icacls"%ProgramFiles%\Common Files\System\Ole DB\oledb32.dll"
  • 对于 64 位操作系统
    命令提示符键入下面的命令,然后按 ENTER 键:
    icacls"%ProgramFiles%\Common Files\System\Ole DB\oledb32.dll"

    "%programfiles (x86) %\Common Files\System\Ole DB\oledb32.dll",2,"S:(ML;;NWNRNX;;;ME)"icacls
每当您运行 icacls 命令时,搜索通过下面的行的输出。
强制 Label\Medium 强制 Level:(NW,NR,NX)
如果在行存在,并且包括 NR 和 NX 值,解决方法已成功应用。但是,如果缺少任一行,或者缺少一个 NR 或 NX 值的解决方法不成功应用。

此变通办法的影响

此替代方法会影响只 ADO/OLE DB 正在运行的应用程序在 Internet Explorer 中。这不是公共的。此变通方法对影响最小,因为其他正在运行中或更高的完整性级别中的所有进程仍都将能够加载和使用 OLEDB32.dll。

如何撤消此替代方法

若要撤消此变通方法,请按照下列步骤操作:
  1. 将以下文本保存到一个临时文件夹:
    • 对于 32 位系统
      将以下文本保存到一个文本文件,名为"unBlockAccess_x86.inf":
      [Unicode]Unicode=yes[Version]signature="$CHICAGO$"Revision=1[File Security]"%ProgramFiles%\Common Files\System\Ole DB\oledb32.dll",2,"S:(ML;;NW;;;ME)"
    • 对于 64 位系统
      将以下文本保存到一个文本文件,名为"unBlockAccess_x86.inf":
      [Unicode]Unicode=yes[Version]signature="$CHICAGO$"Revision=1[File Security]"%ProgramFiles%\Common Files\System\Ole DB\oledb32.dll",2,"S:(ML;;NW;;;ME)"
      保存的文本文件的名为以下文字:"unBlockAccess_x64.inf":
      [Unicode]Unicode=yes[Version]signature="$CHICAGO$"Revision=1[File Security]"%ProgramFiles%\Common Files\System\Ole DB\oledb32.dll",2,"S:(ML;;NW;;;ME)"
  2. 打开临时文件夹中的提升的管理员命令提示符。
  3. 命令提示符键入下面的命令,然后按 ENTER 键:
    secedit/配置/db UnblockAccess.sdb/cfg < inf 文件 >
  4. 在命令完成后,您应收到一条消息,类似于以下内容:
    该任务已成功完成。
    请参阅 %windir%\Security\Logs\Scesrv.log 文件有关的详细信息。
使用 icacls 命令验证解决方法已被删除。然后,您可以安全地删除 UnblockAccess.sdb 和 UnblockAccess.inf 文件。 请参阅有关如何使用 icacls 命令验证解决方法的详细信息的"方法 1"的如何验证此变通办法部分已被删除。

方法 2: 禁用 OLEDB32.dll 的"行位置"功能

重要 此分区、 方法,或任务包含告诉您如何修改注册表的步骤。但是,如果注册表修改不当可能会出现严重问题。因此,请确保您仔细按照这些步骤。附加的保护注册表之前先备份您对其进行修改。然后,您可以在出现问题时还原注册表。有关如何备份和还原注册表的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
322756如何备份和还原在 Windows 注册表
若要使 OLEDB32.dll 的"行位置"功能删除下面的行位置注册表子项:
HKEY_CLASSES_ROOT\CLSID\{2048EEE6-7FA2-11D0-9E6A-00A0C9138C29}

禁用 OLEDB32.dll 的"行位置"功能的效果

所有使用 RowPosition 属性和相关的信息的 ADO 应用程序会受到影响。使用 OLE DB 行位置库中的所有 OLE DB 应用程序会受到影响。MSHTML 受到影响。

如何撤消此替代方法

使用下面的注册表文件还原行位置的注册表子项:
Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\CLSID\{2048EEE6-7FA2-11D0-9E6A-00A0C9138C29}]@="Microsoft OLE DB Row Position Library"[HKEY_CLASSES_ROOT\CLSID\{2048EEE6-7FA2-11D0-9E6A-00A0C9138C29}\InprocServer32]@="C:\\Program Files\\Common Files\\System\\Ole DB\\oledb32.dll""ThreadingModel"="Both"[HKEY_CLASSES_ROOT\CLSID\{2048EEE6-7FA2-11D0-9E6A-00A0C9138C29}\ProgID]@="RowPosition.RowPosition.1"[HKEY_CLASSES_ROOT\CLSID\{2048EEE6-7FA2-11D0-9E6A-00A0C9138C29}\VersionIndependentProgID]@="RowPosition.RowPosition"

方法 3: 注销 OLEDB32.dll

若要撤消 OLEDB32.dll 的注册使用下列值之一。

注意您必须以管理员身份运行命令。
  • 受支持的版本的 Windows 2000、 Windows XP、 Windows Server 2003、 Windows Vista 和 Windows Server 2008 的 32 位系统
    命令提示符键入下面的命令,然后按 ENTER 键:
    Regsvr32.exe/u 计划 Files\Common Files\System\Ole DB\oledb32.dll
  • 对受支持的 Windows XP 专业 x64 版、 Windows Server 2003 x 64 版、 Windows Vista x64 版、 Windows Server 2008 x64 的版本-基于系统和基于 Itanium 的系统的 Windows Server 2008
    命令提示符键入下面的命令,然后按 ENTER 键:
    Regsvr32.exe/u 计划 Files\Common Files\System\Ole DB\oledb32.dll

    regsvr32.exe/u"程序 (x86) \Common Files\System\Ole DB\oledb32.dll"

正在注销 OLEDB32.dll 的效果

依赖于 OLE DB 数据访问应用程序将无法正常工作。

如何撤消此替代方法

若要撤消此变通方法,使用下列值之一。

注意您必须以管理员身份运行命令。
  • 受支持的版本的 Windows 2000、 Windows XP、 Windows Server 2003、 Windows Vista 和 Windows Server 2008 的 32 位系统
    命令提示符键入下面的命令,然后按 ENTER 键:
    Regsvr32.exe 计划 Files\Common Files\System\Ole DB\oledb32.dll
  • 对受支持的 Windows XP 专业 x64 版、 Windows Server 2003 x 64 版、 Windows Vista x64 版、 Windows Server 2008 x64 的版本-基于系统和基于 Itanium 的系统的 Windows Server 2008
    命令提示符键入下面的命令,然后按 ENTER 键:
    Regsvr32.exe 计划 Files\Common Files\System\Ole DB\oledb32.dll

    "程序 (x86) \Common Files\System\Ole DB\oledb32.dll"Regsvr32.exe

方法 4: 使用禁用 OLEDB32.dll SACL 条目

您可以使用 SACL 项禁用 OLEDB32.dll。若要执行此操作使用下列值之一。

注意您必须以管理员身份运行命令。
  • 为支持 Windows 2000,Windows XP 和 Windows Server 2003 的版本
    命令提示符键入下面的命令,然后按 ENTER 键:
    cacls"计划 Files\Common Files\System\Ole DB\oledb32.dll"/E/P 每个人: N
  • 对于支持 Windows XP 专业 x64 版、 x64 的版本的 Windows Server 2003 和基于 Itanium 的系统的 Windows Server 2003 的版本
    命令提示符键入下面的命令,然后按 ENTER 键:
    cacls"计划 Files\Common Files\System\Ole DB\oledb32.dll"/E/P 每个人: N

    cacls"程序 (x86) \Common Files\System\Ole DB\oledb32.dll"/E/P 每个人: N
  • 受支持的版本的 Windows Vista 和 Windows Server 2008 的 32 位系统
    命令提示符键入下面的命令,然后按 ENTER 键:
    takeown/f 计划 Files\Common Files\System\Ole DB\oledb32.dll

    "计划 Files\Common Files\System\Ole DB\oledb32.dll"/save %TEMP%\oledb32.32.dll.TXT icacls

    icacls"计划 Files\Common Files\System\Ole DB\oledb32.dll"/deny everyone:(F)
  • 对于支持的版本 Windows Vista x64 版,基于 x64 的系统的 Windows Server 2008,Windows Server 2008 的基于 Itanium 的系统
    命令提示符键入下面的命令,然后按 ENTER 键:
    takeown/f 计划 Files\Common Files\System\Ole DB\oledb32.dll

    "计划 Files\Common Files\System\Ole DB\oledb32.dll"/save %TEMP%\oledb32.32.dll.TXT icacls

    "计划 Files\Common Files\System\Ole DB\oledb32.dll"/deny everyone:(F) icacls

    takeown/f"程序 (x86) \Common Files\System\Ole DB\oledb32.dll"

    "程序 (x86) \Common Files\System\Ole DB\oledb32.dll"/save %TEMP%\oledb32.64.dll.TXT icacls

    icacls"程序 (x86) \Common Files\System\Ole DB\oledb32.dll"/deny everyone:(F)

正在注销 OLEDB32.dll 的效果

依赖于 OLE DB 数据访问应用程序将无法正常工作。

如何撤消此替代方法

若要撤消此变通方法,使用下列值之一:

注意您必须以管理员身份运行命令。
  • 为支持 Windows 2000,Windows XP 和 Windows Server 2003 的版本
    命令提示符键入下面的命令,然后按 ENTER 键:
    cacls"计划 Files\Common Files\System\Ole DB\oledb32.dll"/E/R 每个人都
  • 对于支持 Windows XP 专业 x64 版、 x64 的版本的 Windows Server 2003 和基于 Itanium 的系统的 Windows Server 2003 的版本
    命令提示符键入下面的命令,然后按 ENTER 键:
    cacls"计划 Files\Common Files\System\Ole DB\oledb32.dll"/E/R 每个人

    cacls"程序 (x86) \Common Files\System\Ole DB\oledb32.dll"/E/R 每个人都
  • 受支持的版本的 Windows Vista 和 Windows Server 2008 的 32 位系统
    命令提示符键入下面的命令,然后按 ENTER 键:
    icacls 计划 Files\Common Files\System\Ole DB / 恢复 %TEMP%\oledb32.32.dll.TXT
  • 对于支持的版本 Windows Vista x64 版,基于 x64 的系统的 Windows Server 2008,Windows Server 2008 的基于 Itanium 的系统
    命令提示符键入下面的命令,然后按 ENTER 键:
    icacls 计划 Files\Common Files\System\Ole DB / 恢复 %TEMP%\oledb32.32.dll.TXT

    程序文件 (x86) \Common Files\System\Ole DB icacls / 恢复 %TEMP%\oledb32.64.dll.TXT

如何确定是否正在运行 32 位或的 Windows 的 64 位版本

如果您不能确定正在运行的 Windows 的版本,或者它是 32 位版本还是 64 位版本,打开系统信息 (Msinfo32.exe),并查看列的 系统类型 的值。 若要这样做,请按照下列步骤操作:
  1. 单击 开始,然后单击 运行,或单击 开始搜索
  2. 键入 msinfo32.exe,然后按 ENTER 键。
  3. 系统信息 中,查看 系统类型中 的值。
    • 对于 32 位版本,系统类型 的值是 windows 的 x 基于 x86 的计算机
    • 对于 64 位版本,系统类型 的值是 windows 的 x 基于 x64 的计算机
有关如何确定是否正在运行的 Windows 的 32 位或 64 位版本的详细信息单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
827218如何确定您的计算机运行的 32 位版本还是 64 位版本的 Windows 操作系统
更新安全修补程序 security_update 安全 bug 的缺陷漏洞恶意攻击者利用此漏洞未经身份验证的注册表缓冲区溢出溢出特殊格式的范围特制的拒绝服务 DoS TSE WinNT Win2000

Warning: This article has been translated automatically

属性

文章 ID:961051 - 上次审阅时间:12/14/2008 00:44:24 - 修订版本: 3.3

Windows Internet Explorer 7, Windows Internet Explorer 7 for Windows XP, Windows Internet Explorer 7 for Windows Server 2003, Windows Internet Explorer 7 for Windows Server 2003 IA64, Windows Internet Explorer 7 in Windows Vista, Windows Internet Explorer 8, Microsoft Internet Explorer 6.0 Service Pack 2, Microsoft Internet Explorer 6.0 Service Pack 1, Microsoft Internet Explorer 6.0, Microsoft Internet Explorer 5.01 Service Pack 4, Windows Server 2008 Datacenter without Hyper-V, Windows Server 2008 Enterprise without Hyper-V, Windows Server 2008 for Itanium-Based Systems, Windows Server 2008 Standard without Hyper-V, Windows Server 2008 Datacenter, Windows Server 2008 Enterprise, Windows Server 2008 Standard, Windows Web Server 2008, Windows Vista Service Pack 1, Windows Vista Business, Windows Vista Enterprise, Windows Vista Home Basic, Windows Vista Home Premium, Windows Vista Starter, Windows Vista Ultimate, Windows Vista Enterprise 64-bit edition, Windows Vista Home Basic 64-bit edition, Windows Vista Home Premium 64-bit edition, Windows Vista Ultimate 64-bit edition, Windows Vista Business 64-bit edition, Microsoft Windows Server 2003 Service Pack 1, Microsoft Windows Server 2003, Datacenter x64 Edition, Microsoft Windows Server 2003, Enterprise x64 Edition, Microsoft Windows Server 2003, Standard x64 Edition, Microsoft Windows XP Professional x64 Edition, Microsoft Windows Server 2003 Service Pack 2, Microsoft Windows XP Service Pack 2, Microsoft Windows XP Service Pack 3

  • kbmt kbregistry kbexpertiseinter kbinfo kbsecadvisory kbsecurity kbsecvulnerability kbsurveynew KB961051 KbMtzh
反馈
; document.getElementsByTagName("head")[0].appendChild(m);