MDAC 函数中的缓冲区溢出可能允许执行代码(832483)
发布时间: 2004 年 1 月 13 日 |更新时间:2004 年 4 月 1 日
版本: 1.2
发布日期: 2004 年 1 月 13 日
更新时间: 2004 年 4 月 1 日
版本: 1.2
总结
谁应阅读本文档:
使用 Microsoft® Windows® 的客户
漏洞的影响:
远程代码执行
最大严重性分级:
重要
建议:
客户应尽早安装此安全更新。
安全更新替换:
此更新将替换 Microsoft 安全公告 MS03-033 中提供的更新。
注意:
安装此更新后,加密其临时文件的用户可能会收到错误消息。 此错误消息已记录,可在 Microsoft 知识库文章 836683中找到解决方法详细信息。
测试的软件和安全更新下载位置:
受影响的软件:
Microsoft 数据访问组件 2.5(包含在 Microsoft Windows 2000 中)
Microsoft 数据访问组件 2.6(包含在 Microsoft SQL Server 2000 中)
Microsoft 数据访问组件 2.7(包含在 Microsoft Windows XP 中)
Microsoft 数据访问组件 2.8(包含在 Microsoft Windows Server 2003 中)
请注意 ,相同的更新适用于所有这些版本的 MDAC - 下载更新
Microsoft 数据访问组件 2.8 (Windows Server 2003 64 位版随附) - 下载更新
上面列出的软件已经过测试,以确定版本是否受到影响。 其他版本要么不再包含安全修补程序支持,要么可能不受影响。 请查看Microsoft 支持部门生命周期网站,确定产品和版本的支持生命周期。
常规信息
技术详细信息
技术说明:
Microsoft 数据访问组件 (MDAC)是一组组件,可为许多数据库操作提供基础功能,例如连接到远程数据库并将数据返回到客户端。 当网络上的客户端系统尝试查看运行 SQL Server 且驻留在网络上的计算机的列表时,它会向网络上的所有设备发送广播请求。 由于特定 MDAC 组件中的漏洞,攻击者可以使用专门制作的数据包来响应此请求,从而导致缓冲区溢出。
成功利用此漏洞的攻击者可能会获得与启动广播请求的程序相同的系统特权级别。 攻击者可能执行的操作将取决于使用 MDAC 运行程序所依据的权限。 如果程序以有限的权限运行,则攻击者将相应地受到限制;但是,如果程序在本地系统上下文下运行,攻击者的权限级别将相同。
由于系统上的 MDAC 原始版本可能已从 Microsoft 网站上的可用更新更改,因此我们建议使用以下工具来确定系统上已有的 MDAC 版本:Microsoft 知识库文章301202“如何:检查 MDAC 版本”讨论此工具并说明如何使用它。 此外,Microsoft 知识库文章 231943 讨论不同版本的 MDAC 的版本历史记录。
缓解因素:
- 若要使攻击成功,攻击者必须模拟与目标系统位于同一 IP 子网上的 SQL Server。
- 当网络上的客户端系统尝试查看运行 SQL Server 且驻留在网络上的计算机的列表时,它会向网络上的所有设备发送广播请求。 目标系统必须启动此类广播请求,以便容易受到攻击。 攻击者无法启动第一步,但必须等待任何人枚举在同一子网上运行 SQL Server 的计算机。 此外,安装这些 SQL 管理工具,系统并不易受攻击。
- 在客户端系统上执行的代码将仅在发出广播请求的客户端程序的特权下运行。
严重性分级:
Microsoft 数据访问组件 2.5(Windows 2000 随附) | 重要 |
Microsoft 数据访问组件 2.6(SQL Server 2000 随附) | 重要 |
Microsoft 数据访问组件 2.7(Windows XP 随附) | 重要 |
Microsoft 数据访问组件 2.8(Windows Server 2003 随附) | 重要 |
上述 评估 基于受漏洞影响的系统类型、其典型部署模式以及利用漏洞对它们的影响。
漏洞标识符:CAN-2003-0903
解决方法
Microsoft 已测试以下解决方法。 这些解决方法不会更正基础漏洞。 但是,它们有助于阻止已知的攻击途径。 在某些情况下,解决方法可能会减少功能;在这种情况下,下面确定了减少功能。
阻止 UDP 端口 1434 接受入站流量。
阻止系统网络接口上的 UDP 端口 1434 接受入站流量。 例如,若要阻止源自来自来自 UDP 1434 的基于 Windows 2000 的计算机的网络流量,请在命令行中键入以下内容:
ipsecpol -w REG -p "Block UDP 1434 Filter" -r "Block Inbound UDP 1434 Rule" -f *:1434=0:*:UDP -n BLOCK -x
有关 IPsec 以及此解决方法使用的技术的详细信息,请参阅 Microsoft 知识库文章813878“如何使用 IPSec 阻止特定网络协议和端口”。
解决方法的影响: SQL 客户端系统将无法再启动 SQL 广播请求。 例如,SQL Enterprise Manager 等工具使用广播请求来枚举子网上的所有 SQL Server 实例。 解决方法还会阻止连接到非默认 SQL Server 实例。 SQL Server 的非默认实例的示例是在同一计算机上安装的其他 SQL Server 实例。
常见问题
漏洞的范围是什么?
这是 缓冲区溢出 漏洞。 成功利用此漏洞的攻击者可能会获得与启动广播请求的程序相同的系统特权级别。 攻击者可以对系统执行的操作取决于使用 MDAC 运行程序的用户帐户的权限。
如果程序以有限的权限运行,则攻击者将相应地受到限制。 但是,如果程序在本地系统的上下文下运行,攻击者可能会获得相同的权限级别。
导致漏洞的原因是什么?
漏洞是由于特定 MDAC 组件中未检查缓冲区造成的。 如果攻击者能够成功利用此漏洞,则可以允许他们控制系统,并采取执行 MDAC 的合法进程可能采取的任何操作。
什么是 Microsoft 数据访问组件?
Microsoft 数据访问组件 (MDAC)是一组组件,使程序可以轻松访问数据库并更改其中的数据。 新式数据库可能采用各种形式(例如,SQL Server 数据库、Microsoft Access 数据库和 XML 文件),并且可以存储在各种位置(例如,在本地系统或远程数据库服务器上)。
MDAC 提供一组合并的函数,用于以一致的方式使用这些数据源。 对 MDAC 及其提供的组件进行了很好的讨论,可在 MSDN 上使用。
我的系统上有 MDAC 吗?
很可能你这样做,因为 MDAC 是无处不在的技术:
- MDAC 作为 Windows 2000、SQL Server 2000、Windows XP 和 Windows Server 2003 的一部分进行安装。
- MDAC 可从 Microsoft 网站下载。
- MDAC 由许多其他 Microsoft 程序安装。 为了仅命名几个情况,它作为 Microsoft Windows NT 4.0 选项包、Microsoft Access 和 SQL Server 的一部分进行安装。
可以使用一个工具,可帮助你确定系统上运行的 MDAC 版本。 Microsoft 知识库文章 301202 “如何:检查 MDAC 版本”介绍了此工具,并介绍了如何使用它。 此外,Microsoft 知识库文章 231943 讨论不同版本的 MDAC 的版本历史记录。
为什么 Microsoft Windows 更新为我提供与预期不同的安全更新的语言版本?
建议(但不必要)安装遵循客户已安装的 MDAC 语言的此更新的语言版本。 客户使用 Windows 更新 下载此安全更新,然后根据客户拥有的语言版本的 Windows 使用 Microsoft 软件更新服务(SUS)。
客户可能安装了较新版本的 MDAC,该版本已本地化为 Windows 实例的语言以外的语言。 例如,如果客户在 Windows 的英语实例上安装 SQL Server 的西班牙语实例,则客户可能安装了西班牙语版本的 MDAC。 这是一种受支持的配置,我们建议使用西班牙语更新。 某些日志条目会注意到差异。 如果客户更喜欢西班牙语更新,则应使用本安全公告开头的下载链接安装安全更新。
注意:虽然此安全更新的安装是英语的,但安全更新本身已本地化,Windows 更新将为客户提供与 Windows 语言版本匹配的更新。
攻击者可能使用漏洞执行哪些操作?
此漏洞可能导致攻击者使用格式不正确的用户数据报协议 (UDP) 数据包回复客户端系统请求,这将导致缓冲区溢出。 如果攻击者成功利用此漏洞,他们可以对系统采取任何操作,让溢出进程能够执行。
攻击者如何利用此漏洞?
攻击者可以通过模拟运行 SQL Server 的服务器来利用此漏洞,该服务器侦听网络上的客户端系统以请求运行 SQL Server 的特定网络上的所有系统的枚举。 通过使用专门制作的数据包回复该请求,攻击者可能会导致缓冲区溢出发生在客户端系统上的特定 MDAC 组件中。
更新的作用是什么?
此安全更新通过验证回复中指定的字节数是否具有适当的值来消除漏洞。
安全更新信息
安装平台和先决条件:
有关平台的特定安全更新的信息,请单击相应的链接:
Microsoft 数据访问组件(所有版本)
先决条件
此安全更新要求安装以下任何一个 MDAC 版本:
- MDAC 2.5 Service Pack 2
- MDAC 2.5 Service Pack 3
- MDAC 2.6 Service Pack 2
- MDAC 2.7
- MDAC 2.7 Service Pack 1
- MDAC 2.7 Service Pack 1 刷新
- MDAC 2.8
包含在将来的 Service Pack 中:
此问题的修补程序将包含在 MDAC 2.8 Service Pack 1 中。
安装信息
此更新支持以下安装开关:
/? 显示安装开关的列表。
/Q 使用静默模式。
/T:<full 路径> 指定临时工作文件夹。
/C 仅在与 /T 一起使用时将文件提取到该文件夹。
/C:<Cmd> 重写作者定义的 Install 命令。
/N 不重启对话框。
部署信息
例如,以下命令行命令在不进行任何用户干预的情况下安装安全更新,并禁止重启:
<LAN>_Q832483_MDAC_X86.EXE /C:“dahotfix.exe /q /n” /q:a
例如,LAN> 是 ENU 的<英语。
为Dahotfix.exe指定的 /q 开关用于无提示安装。 /n 开关禁止重启。 尾随 /q:a 开关还将取消最终用户许可协议(EULA)弹出窗口。
重启要求
应用此安全更新后,必须重新启动计算机。
删除信息
安装此安全更新后,无法将其删除。
文件信息
此修补程序的英文版本包含下表中列出的文件属性(或更高版本)。 这些文件的日期和时间以协调世界时(UTC)列出。 查看文件信息时,会将其转换为本地时间。 若要查找 UTC 与本地时间之间的差异,请使用 控制面板 中的“日期和时间”工具中的“时区”选项卡。
MDAC 2.5 Service Pack 2:
日期 | 时间 | 版本 | 大小 | 文件名 |
---|---|---|---|---|
2003 年 10 月 29 日 | 02:20 | 3.520.6101.0 | 212,992 | Odbc32.dll |
28-Oct-2003 | 21:44 | 3.70.11.46 | 24,848 | Odbcbcp.dll |
28-Oct-2003 | 00:06 | 3.520.6101.0 | 102,672 | Odbccp32.dll |
28-Oct-2003 | 21:44 | 3.70.11.46 | 524,560 | Sqlsrv32.dll |
MDAC 2.5 Service Pack 3:
日期 | 时间 | 版本 | 大小 | 文件名 |
---|---|---|---|---|
2003 年 10 月 29 日 | 02:24 | 3.520.6301.0 | 212,992 | Odbc32.dll |
28-Oct-2003 | 21:44 | 3.70.11.46 | 24,848 | Odbcbcp.dll |
28-Oct-2003 | 01:08 | 3.520.6301.0 | 102,672 | Odbccp32.dll |
28-Oct-2003 | 21:44 | 3.70.11.46 | 524,560 | Sqlsrv32.dll |
MDAC 2.6 Service Pack 2:
日期 | 时间 | 版本 | 大小 | 文件名 |
---|---|---|---|---|
28-Oct-2003 | 17:22 | 2000.80.747.0 | 86,588 | Dbnetlib.dll |
2003 年 10 月 29 日 | 02:35 | 3.520.7502.0 | 417,792 | Odbc32.dll |
28-Oct-2003 | 17:22 | 2000.80.747.0 | 29,252 | Odbcbcp.dll |
2003 年 10 月 29 日 | 02:34 | 3.520.7502.0 | 217,088 | Odbccp32.dll |
28-Oct-2003 | 17:22 | 2000.80.747.0 | 479,800 | Sqloledb.dll |
28-Oct-2003 | 17:22 | 2000.80.747.0 | 455,236 | Sqlsrv32.dll |
MDAC 2.7
日期 | 时间 | 版本 | 大小 | 文件名 |
---|---|---|---|---|
28-Oct-2003 | 05:09 | 2000.81.9002.0 | 61,440 | Dbnetlib.dll |
28-Oct-2003 | 05:05 | 3.520.9002.0 | 204,800 | Odbc32.dll |
28-Oct-2003 | 05:10 | 2000.81.9002.0 | 24,576 | Odbcbcp.dll |
28-Oct-2003 | 05:09 | 3.520.9002.0 | 94,208 | Odbccp32.dll |
28-Oct-2003 | 05:06 | 2.70.9002.0 | 413,696 | Oledb32.dll |
28-Oct-2003 | 05:09 | 2000.81.9002.0 | 450,560 | Sqloledb.dll |
28-Oct-2003 | 05:09 | 2000.81.9002.0 | 356,352 | Sqlsrv32.dll |
MDAC 2.7 Service Pack 1 或 MDAC 2.7 Service Pack 1 刷新:
日期 | 时间 | 版本 | 大小 | 文件名 |
---|---|---|---|---|
28-Oct-2003 | 04:12 | 2000.81.9042.0 | 61,440 | Dbnetlib.dll |
28-Oct-2003 | 04:09 | 2.71.9042.0 | 126,976 | Msdart.dll |
28-Oct-2003 | 04:09 | 3.520.9042.0 | 204,800 | Odbc32.dll |
28-Oct-2003 | 04:13 | 2000.81.9042.0 | 24,576 | Odbcbcp.dll |
28-Oct-2003 | 04:13 | 3.520.9042.0 | 98,304 | Odbccp32.dll |
28-Oct-2003 | 04:10 | 2.71.9042.0 | 417,792 | Oledb32.dll |
28-Oct-2003 | 04:12 | 2000.81.9042.0 | 471,040 | Sqloledb.dll |
28-Oct-2003 | 04:12 | 2000.81.9042.0 | 385,024 | Sqlsrv32.dll |
MDAC 2.8:
日期 | 时间 | 版本 | 大小 | 文件名 |
---|---|---|---|---|
2003 年 12 月 12 日 | 23:40 | 2000.85.1025.0 | 24,576 | Odbcbcp.dll |
2003 年 11 月 19 日 | 00:38 | 2000.85.1025.0 | 401,408 | Sqlsrv32.dll |
MDAC 2.8 for Windows Server 2003 64 位版本:
日期 | 时间 | 版本 | 大小 | 文件名 |
---|---|---|---|---|
2003 年 12 月 15 日 | 18:51 | 2000.85.1025.0 | 49,152 | Odbcbcp.dll |
2003 年 12 月 15 日 | 18:52 | 2000.85.1025.0 | 978,944 | Sqlsrv32.dll |
验证更新安装
若要验证计算机上安装安全更新,检查此公告中列出的文件清单,并确保文件版本正确。
还可以通过查看以下注册表项来验证是否已安装此安全更新:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\汇报\DataAccess\Q832483
对于 Windows Server 2003 64 位版中提供的 Microsoft 数据访问组件 2.8,可以通过查看以下注册表项来验证是否已安装此安全更新:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\HotFix\知识库(KB)832483
请注意 ,如果管理员或 OEM 将832483安全更新集成到 Windows 安装源文件中,则可能无法正确创建这些注册表项。
其他信息
获取其他安全更新:
可从以下位置获取其他安全问题汇报:
- 安全更新可从 Microsoft 下载中心获取,可通过关键字 (keyword)搜索“security_patch”轻松找到。
- 使用者平台的汇报可从WindowsUpdate 网站。
支持:
- 美国 和加拿大的客户可从 1-866-PCSAFETY 的 Microsoft 产品支持服务 获得技术支持。 对于与安全更新关联的支持调用,不收取任何费用。
- 国际客户可以从其本地 Microsoft 子公司获得支持。 与安全更新关联的支持不收取任何费用。 有关如何联系 Microsoft 支持部门的信息,请参阅 国际支持 网站。
安全资源:
- Microsoft TechNet 安全网站提供有关 Microsoft 产品安全性的其他信息。
- Microsoft 软件更新服务
- Microsoft 基线安全分析器 (MBSA):请查看知识库文章 306460 ,了解具有 MBSA 工具检测限制的安全更新列表。
- Windows 更新
- Windows 更新目录:有关Windows 更新目录的详细信息,请查看知识库文章323166。
- 办公室更新
软件更新服务 (SUS):
Microsoft 软件更新服务(SUS)使管理员能够快速可靠地将最新的关键更新和安全更新部署到基于 Windows 2000 和 Windows Server™ 2003 的服务器,以及运行 Windows® 2000 Professional 或 Windows XP Professional 的台式计算机。
有关如何使用软件更新服务部署此安全更新的信息,请访问 软件更新服务 网站。
系统管理系统服务器(SMS):
系统管理服务器可以提供部署此安全更新的帮助。 有关系统管理服务器的信息, 请访问 SMS 网站。
免责声明:
Microsoft 知识库中提供的信息“按原样”提供,不提供任何形式的担保。 Microsoft 不明确或暗示所有保证,包括适销性和针对特定用途的适用性和适用性的保证。 在任何情况下,Microsoft Corporation 或其供应商都应对任何损害负责,包括直接、间接、附带、后果性、业务利润损失或特殊损害,即使 Microsoft Corporation 或其供应商被告知存在此类损害的可能性。 某些州不允许排除或限制后果性或附带性损害的责任,因此上述限制可能不适用。
修改:
- V1.0 2004 年 1 月 13 日:已发布公告
- V1.1 2004 年 1 月 30 日:更新了“解决方法”部分中的 IP标准版C 策略,更新了“部署信息”部分下的命令行安装字符串。
- V1.2 2004 年 4 月 1 日:更新了警告部分,其中包含已加密其临时文件的客户的建议。
生成于 2014-04-18T13:49:36Z-07:00