安全公告
Microsoft 安全公告 MS02-057 - 严重
Unix 3.0 Interix SDK 服务中的缺陷可能允许执行代码(Q329209)
发布时间: 2002 年 10 月 2 日
版本: 1.0
最初发布: 2002 年 10 月 2 日
总结
谁应该阅读此公告:管理员istrators 和开发人员,他们在 Unix 3.0 Interix SDK 服务上使用 Sun [TM] Microsystems RPC 库部署了应用程序或实用工具。
漏洞的影响: 拒绝服务,运行攻击者选择的代码
最大严重性分级: 中等
建议:在 Interix SDK 上使用 Sun Microsystems RPC 库部署了应用程序或实用程序的管理员istrators 应应用修补程序。
受影响的软件: 仅使用 Unix 3.0 Interix SDK 服务上的 Sun Microsystem RPC 库在以下操作系统上运行的应用程序或实用程序应考虑应用修补程序。
- Microsoft Windows NT4
- Microsoft Windows 2000
- Microsoft Windows XP
常规信息
技术详细信息
技术说明:
本公告中讨论的所有三个漏洞都涉及在 Interix SDK 上的 Microsoft UNIX 服务(SFU)3.0 中包含 Sun RPC 库。 使用 Interix SDK 中的 Sun RPC 库创建应用程序或实用工具的开发人员需要评估三个漏洞。
Windows Services for UNIX (SFU) 3.0 提供了一系列跨平台服务,用于将 Windows 集成到现有 UNIX 环境中。 在版本 3.0 中,Interix 子系统技术是内置的,因此 Windows Services for UNIX 3.0 可以在 Microsoft 提供的一个完全集成和支持的产品中提供平台互操作性和应用程序迁移。 已将 Windows 集成到其现有 UNIX 环境中的开发人员可能已使用 Interix SDK 开发自定义应用程序和实用工具,以便仅在 UNIX 平台上运行的应用程序现在可以在 Windows 环境中运行。 使用 Interix SDK 开发应用程序或实用工具的开发人员应阅读此公告。
第一个漏洞是 XDR 库中附带的 Sun RPC 库的整数溢出,该库随附在 Microsoft Service for Unix (SFU) 3.0 上的 Interix SDK 上。 攻击者可以从远程计算机向 RPC 服务器发送恶意 RPC 请求,并导致服务器程序损坏。 这可能会导致服务器失败,并可能允许攻击者在服务器程序的上下文中运行其选择的代码。
第二个漏洞是缓冲区溢出。 攻击者可能会将恶意 RPC 请求发送到具有错误参数大小的 RPC 服务器检查。 这可能会导致缓冲区溢出,导致服务器失败,并阻止它为客户端的任何进一步请求提供服务。
第三个漏洞是 RPC 实现错误。 使用 Sun RPC 库的应用程序无法正确检查客户端 TCP 请求的大小。 这可能会导致使用 Sun RPC 库向服务器应用程序拒绝服务。 RPC 库要求客户端 TCP 请求指定以下记录的大小。 由于 RPC 检测客户端数据包的方式存在缺陷,因此攻击者可以从远程计算机向 RPC 服务器发送格式不正确的 RPC 请求,并导致服务器无法处理任何进一步的客户端请求。
应用修补程序后,必须重新编译与 Interix SDK Sun RPC 库静态链接的任何 Interix 应用程序。
缓解因素:
- 只有使用 Interix SDK 创建的应用程序或实用程序(特别是使用 Sun RPC 库)才会受到这些漏洞的影响。
- 如果管理员或开发人员仅安装了 Interix SDK,但实际上尚未使用使用 Sun RPC 库的 SDK 创建应用程序,则安装 SDK 的系统不会受到攻击。
严重性分级:
Internet 服务器 | Intranet 服务器 | 客户端系统 | |
---|---|---|---|
适用于 Unix 3.0 的 Microsoft Services Interix SDK | 适中 | 适中 | 适中 |
上述 评估 基于受漏洞影响的系统类型、其典型部署模式以及利用漏洞对它们的影响。 即使在描述的某个漏洞中,攻击者也可以运行代码,但只能在应用程序的上下文中运行代码。
漏洞标识符:
- XDR 库中的整数溢出:CAN-2002-0391
- 参数大小不正确检查导致缓冲区溢出:CAN-2002-1140
- RPC 实现错误:CAN-2002-1141
测试的版本:
Microsoft 测试了 Microsoft Windows NT、Windows 2000 和 Windows XP,以评估它们是否受这些漏洞的影响。 以前的版本不再 受支持,可能会或不受这些漏洞的影响。
常见问题解答
本公告中讨论的所有三个漏洞都涉及在 Interix SDK 上的 Microsoft UNIX 服务 (SFU) 3.0 中包含 SUN RPC 库。 使用 Interix SDK 上的 SUN RPC 库创建应用程序或实用工具的开发人员需要评估以下三个漏洞。
什么是 RPC?
RPC(远程过程调用)是一种技术,用于支持分布式应用程序,即组件位于不同计算机上的应用程序。 RPC 的主要目的是为组件提供相互通信的方式。 这样,组件就可以互相征收请求,并传达这些请求的结果。 此公告涉及 Sun RPC 协议。
什么是 SFU?
SFU 代表 UNIX 服务。 Windows Services for UNIX 版本 3.0 提供了一系列跨平台服务,用于将 Windows 集成到基于 UNIX 的现有环境中。
若要获取有关 Unix 服务的详细信息,请参阅 https://www.microsoft.com/windows/sfu/docs/sfuwp.doc
Microsoft Services for Unix 3.0 和 Interix 如何相关?
Interix 技术提供一个 UNIX 环境,该环境在 Windows 内核上运行,使 UNIX 应用程序和脚本能够与 Windows 应用程序一起在 Windows 平台上本机运行。 借助此功能,安装可以继续从其 UNIX 脚本和应用程序中获取价值,只需在 Windows 上重复使用它们即可。
适用于 UNIX 2.0 和 3.0 的 Windows 服务的主要区别在于,Microsoft Interix 已完全集成到适用于 UNIX 3.0 的 Windows 服务中。 Interix 子系统技术提供了一个通用环境,用于在单个系统上运行 Windows 和 UNIX 应用程序。 有关使用 Interix 的 UNIX 3.0 服务的技术概述,请 单击此处。
什么是 Interix SDK?
SFU 3.0 随附的 Interix SDK 提供编译器、工具、库和调试器,用于迁移 UNIX 上的应用程序,以便在 Windows 环境中运行。
使用 Interix SDK 创建哪些类型的应用程序或实用工具?
该应用程序可以是任何基于 UNIX 的应用程序。 基本上,Interix SDK 用于支持需要移植到 Windows 平台的现有应用程序,而无需更改其源代码。 开发人员很少使用 Interix SDK 从头开始编写应用程序。
Microsoft 不会随适用于 Unix 3.0 的服务一起提供使用 Sun RPC 协议的应用程序? 他们不是脆弱吗?
否。 Microsoft 提供的适用于 NFS 的服务器、NIS 服务器、PCNFS 服务器、PortMapper 和用户名映射服务器以及适用于 Unix 3.0 的服务。 所有这些应用程序都使用 Sun RPC 协议;但是,这些应用程序都未使用 Interix SDK Sun RPC 库。 已验证这些漏洞不受本公告中讨论的任何漏洞的影响。
SDK 是转到第三方合作伙伴还是正式发布?
SUN RPC 库附带 SFU 3.0。 Unix 3.0 和 Interix 的服务也捆绑在一些 ISV 中,因此它们可能会为其产品提供 SDK。
如何实现告知第三方产品是否包括 SFU 3.0 和 Interix SDK?
没有标准的方法可以判断。 如果使用第三方 Interix 服务器应用程序,最好是联系供应商,以验证应用程序是否使用 Interix SDK 中的 Sun RPC 库。
XDR 库中的整数溢出(CAN-2002-0391):
此漏洞的范围是什么?
由于变量中包含参数的溢出,缓冲区溢出。 此参数为使用外部数据表示形式(XDR)的应用程序定义数组的大小。 该漏洞可能导致拒绝服务,方法是使用 Sun XDR 库在服务器应用程序中崩溃应用程序或运行更高特权级别的代码。 Sun Microsystems 将其 XDR 库的一部分分发了此功能。 此库随 Interix SDK 上的 Services for Unix (SFU) 3.0 一起提供。
远程攻击者可能会利用此漏洞导致应用程序失败或导致目标服务器上执行任意代码。 攻击者可以从远程计算机向 RPC 服务器发送恶意 RPC 请求。 这可能会导致服务器程序中的堆损坏。 堆损坏反过来可能导致服务器崩溃,从而阻止它为来自其他客户端程序的其他请求提供服务。 攻击者还可以利用堆损坏在服务器程序的上下文中运行恶意代码。
导致漏洞的原因是什么?
在随 SFU 3.0 附带的 Sun XDR 库一起开发的应用程序使用的变量中存在缓冲区溢出。 可以溢出保存数组参数大小的变量。
什么是 XDR 库?
XDR(外部数据表示形式)库用于提供独立于平台的方法,用于通过网络连接将数据从一个系统进程发送到另一个系统进程。 这些库随 Services For Unix 3.0 一起提供。
若要了解有关 XDR 的详细信息,请参阅 XDR:外部数据表示标准。
XDR 库有什么问题?
XDR 库中有一个函数,其中包含溢出,这可能会导致内存分配不当。 由于输入未正确检查,内存错位可能导致缓冲区溢出。
此问题是否与 CERT 公告相关?
是的,这与 VU#192995相关。
此漏洞使攻击者能够执行哪些操作?
此漏洞可能使攻击者能够发送格式不正确的 RPC 请求,该请求会导致应用程序失败或使用 Sun RPC 库在服务器应用程序中以系统的形式运行代码。 如果攻击者能够在 RPC 服务器上运行代码,攻击者将拥有与应用程序相同的权限。
攻击者如何利用此漏洞?
攻击者可以从远程计算机向 RPC 服务器发送恶意 RPC 请求。 这可能会导致服务器程序中的堆损坏。 堆损坏反过来可能导致服务器崩溃,从而阻止它为来自其他客户端程序的其他请求提供服务。
修补程序的作用是什么?
该修补程序通过正确检查可能导致拒绝服务或代码执行的整数溢出的输入来消除漏洞。
参数大小检查导致拒绝服务(CAN-2002-1140):
此漏洞的范围是什么?
RPC 库要求将客户端请求分解为可变大小的片段,每个片段的前导位指定它是否为最后一个片段。 下一位指定要关注的数据的大小。
RPC 库要求发送到它的客户端请求将以特定格式分解为可变大小的片段。 如果恶意客户端要将特定格式不正确的片段发送到服务,RPC 库将进入“挂起”状态,并且无法响应任何进一步的请求,从而导致拒绝服务。
任何使用 Sun RPC 库的 RPC 服务器都易受攻击。
导致漏洞的原因是什么?
RPC 库预期客户端请求将分解为可变大小的片段,每个片段的前导位指定它是否为最后一个片段。 下一位指定要关注的数据的大小。 RPC 库中存在缺陷,如果碎片数据包以特定方式格式不正确,会导致应用程序挂起。
此漏洞使攻击者能够执行哪些操作?
此漏洞可能导致攻击者导致 RPC 服务器停止响应客户端请求。 换句话说,这是拒绝服务漏洞。
攻击者如何利用此漏洞?
攻击者可以通过编写向 RPC 服务器发送格式不正确的数据包的程序来利用此漏洞,并导致它无法再处理任何进一步的客户端请求。
攻击者是否需要是经过身份验证的用户?
否。 任何可以通过网络访问计算机的人都可以执行此攻击。
是否可以在防火墙上阻止 TCP 攻击?
管理员可以阻止防火墙上的 TCP 端口 111,并阻止远程用户将格式不正确的数据包发送到防火墙内的 RPC 服务器。
是否有从拒绝服务中恢复的方法?
管理员通常只需要重启应用程序。 在某些情况下,特定应用程序可能需要管理员重新启动服务器。
修补程序的作用是什么?
修补程序通过正确检查 RPC 服务器的输入来消除漏洞。
通过发送无效 RPC 请求拒绝服务(CAN-2002-1141):
此漏洞的范围是什么?
第三个漏洞是 RPC 实现错误。 使用 Sun RPC 库的应用程序无法正确检查客户端 TCP 请求的大小。 这可能会导致使用 Sun RPC 库向服务器应用程序拒绝服务。 RPC 库要求客户端 TCP 请求指定以下记录的大小。 由于 RPC 检测客户端数据包的方式存在缺陷,因此攻击者可以通过远程计算机向 RPC 服务器发送格式不正确的 RPC 请求,并导致服务器无法处理任何进一步的客户端请求,导致服务器失败
导致漏洞的原因是什么?
RPC 库要求将客户端 TCP 请求分解为可变大小的片段。 由于 RPC 库对碎片客户端数据包执行输入验证的方式存在缺陷,因此攻击者可能导致服务器进入无法处理客户端请求的状态。
此漏洞使攻击者能够执行哪些操作?
攻击者可以为对 RPC 服务器的客户端请求创建拒绝服务,并导致服务器失败。
攻击者如何利用此漏洞?
攻击者可以通过向 RPC 服务器发送格式不正确的数据包来编写调用 RPC 实现错误的程序。
攻击者是否需要是经过身份验证的用户?
否。 任何可以通过网络访问计算机的人都可以执行此攻击。
是否可以在防火墙上阻止 TCP 攻击?
管理员可以阻止防火墙上的 TCP 端口 111,并阻止远程用户将格式不正确的数据包发送到防火墙内的 RPC 服务器。
是否有从拒绝服务中恢复的方法?
管理员通常只需要重启应用程序。 在某些情况下,特定应用程序可能需要管理员重新启动服务器。
修补程序的作用是什么?
修补程序通过检测无效的客户端数据包并拒绝为它们提供服务来更正 RPC 实现错误。
修补程序可用性
此修补程序 的下载位置可在以下任何平台上安装:
- Microsoft Windows NT4 Service Pack 6a
- Windows 2000
- Windows XP
有关此修补程序的其他信息
安装平台:
此修补程序可以安装在运行 Windows NT4 SP6a、Windows 2000 和 Windows XP 的系统上。 只有已使用 Interix SDK 上的 Sun Microsystem RPC 库部署应用程序或实用程序的管理员和开发人员需要应用此修补程序。
包含在将来的 Service Pack 中:
此问题的修补程序将包含在 Interix SDK 上的 Sun Microsystems RPC 库的任何更新中。
需要重新启动: 否
可以卸载修补程序: 是
取代的修补程序: 无。
验证修补程序安装:
- 若要验证是否已在计算机上安装修补程序,请参阅知识库文章 Q329209
这将提供有关文件时间戳的信息。
注意:
无
本地化:
此修补程序仅以英语提供。
获取其他安全修补程序:
可从以下位置获取其他安全问题的修补程序:
- 安全修补程序可从 Microsoft 下载中心获取,可通过执行关键字 (keyword)搜索“security_patch”来轻松找到。
- WindowsUpdate 网站提供了使用者平台的修补程序
其他信息:
支持:
- Microsoft 知识库文章Q329209讨论此问题,将在发布本公告大约 24 小时后提供。 可以在 Microsoft Online 支持网站上找到知识库文章。
- Microsoft 产品支持服务提供技术支持。 与安全修补程序关联的支持调用不收取任何费用。
安全资源:Microsoft TechNet 安全网站提供有关 Microsoft 产品安全性的其他信息。
免责声明:
Microsoft 知识库中提供的信息“按原样”提供,不提供任何形式的担保。 Microsoft 不明确或暗示所有保证,包括适销性和针对特定用途的适用性和适用性的保证。 在任何情况下,Microsoft Corporation 或其供应商都应对任何损害负责,包括直接、间接、附带、后果性、业务利润损失或特殊损害,即使 Microsoft Corporation 或其供应商被告知存在此类损害的可能性。 某些州不允许排除或限制后果性或附带性损害的责任,因此上述限制可能不适用。
修改:
- V1.0 (2002 年 10 月 2 日):公告已创建。
生成于 2014-04-18T13:49:36Z-07:00