Windows 中缓冲区溢出可能导致数据损坏 (817606) 最初发布日期;2003-07-09 摘要: 本公告的读者对象:使用 Microsoft® Windows® NT、Microsoft Windows 2000 或 Microsoft Windows XP 的客户 安全漏洞的影响:允许攻击者执行他们选择的代码 最高严重等级:重要 建议:管理员应考虑安装修补程序。 受影响的软件: Microsoft Windows NT Server 4.0 Microsoft Windows NT Server 4.0 Terminal Server Edition Microsoft Windows 2000 Windows XP Professional 不受影响的软件: Microsoft Windows Server 2003 技术说明: 服务器信息块 (SMB) 是 Windows 用来共享文件、打印机、串行端口以及使用命名管道和邮件插槽在计算机之间进行通信的 Internet 标准协议。在网络环境中,服务器使客户端可以使用文件系统和资源。客户端发出 SMB 资源请求,服务器则按客户端服务器请求-响应协议作出 SMB 响应。 在服务器验证 SMB 数据包参数的方式中存在缺陷。当客户端系统向服务器系统发送 SMB 数据包时,数据包中包含为服务器提供一整套"指令"的特定参数。在此情况下,服务器未能正确验证数据包建立的缓冲区长度。如果客户端指定的缓冲区长度小于所需长度,可能导致缓冲区溢出。 通过发送一个专门制作的 SMB 数据包请求,攻击者可以使缓冲区发生溢出。如果被利用,将导致数据损坏、系统发生故障,或者更糟的是,可能允许攻击者执行其选择的代码。攻击者需要一个有效的用户帐户,并需由服务器授权方能利用这一缺陷。 减轻影响的因素: Windows Server 2003 不受这一漏洞的影响。 默认情况下,不可能匿名利用这一缺陷。攻击者须在尝试向服务器发送 SMB 数据包之前获得服务器授权。 在防火墙上阻隔 139/445 端口将消除攻击者通过 Internet 进行攻击的可能。 严重等级: Windows 2000 重要 Windows NT Server 4.0 重要 Windows XP Professional 重要 上面的评估是基于薄弱环节影响的系统类型、典型的部署模式和暴露薄弱环节后的影响而作出的。 隐患标识符: CAN-2002-0350 测试过的版本: Microsoft 对 Windows NT Server 4.0、Windows NT Server 4.0 Terminal Services Edition、Windows 2000、Windows XP 和 Windows Server 2003 进行了测试,以便评估它们是否受这些漏洞的影响。此前的版本不再受支持,它们可能会也可能不会受这些漏洞的影响。 常见问题: 该漏洞的范围有多大? 这一 buffer overrun 漏洞可能导致数据损坏、系统发生故障,或允许攻击者执行其选择的代码。 要成功利用此缺陷,攻击者首先需获得服务器授权。默认情况下,不可能匿名利用此缺陷。 此漏洞因何而起? 这一漏洞是由于系统对某些传入的 SMB 数据包的缓冲区大小验证不足而引起的。SMB 是基于客户端至服务器的协议。当客户端系统向服务器发送 SMB 命令时,服务器应该验证数据包中设置的参数并进行相应的响应。 出现这一缺陷时,接收系统未在响应之前对缓冲区的大小进行必要的验证。这将引起缓冲区溢出,从而造成数据损坏、系统故障或允许攻击者执行其选择的代码。 何谓 SMB? SMB(服务器信息块)及其后继 Common Internet File System 是 Windows 用来共享文件、打印机、串行端口以及使用命名管道和邮件插槽在计算机之间进行通信的 Internet 标准协议。在网络环境中,服务器使客户端可以使用文件系统和资源。客户端发出 SMB 资源请求,服务器则按客户端服务器请求-响应协议作出 SMB 响应。 此漏洞同样影响 CIFS 吗? 公共 Internet 文件系统 (CIFS) 是 Internet 标准协议。此处所述之漏洞存在于 Microsoft 的协议实施之中,而非协议本身内。 Microsoft 的协议实施存在什么问题? 在服务器验证 SMB 数据包参数的方式中存在缺陷。当客户端系统向服务器系统发送 SMB 数据包时,数据包中包含为服务器提供一整套"指令"的特定参数。在此情况下,服务器未能正确验证数据包建立的缓冲区长度。如果客户端指定的缓冲区长度小于所需长度,可能导致缓冲区溢出。而这可能导致随机数据被写入内存中,从而引起数据损坏或系统故障,或可能允许攻击者执行其选择的代码。 攻击者可能利用此漏洞从事何种活动? 如果攻击者能够成功地利用此漏洞,他们可以使随机内存区被覆盖。这样做的后果可能是数据损坏、系统故障或者允许攻击者执行其选择的代码。 哪一类数据会被损坏? 实质上,内存中的任何数据都有可能被随机覆盖。最糟糕的情况是,系统内存可能被覆盖,从而使服务器出现故障。 攻击者可能如何利用此漏洞? 攻击者可以通过创建一个格式错误的 SMB 数据包并将其发送给服务器,利用这一漏洞。 攻击者首先需要一个由服务器授权的有效用户名和密码。默认情况下,匿名利用这一漏洞是不可能的。 修补程序有何用途? 修补程序通过对 SMB 数据包中设置的参数进行正确的验证,从而消除漏洞。 获取修补程序的途径 该修补程序的下载位置 产品: http://www.microsoft.com/Downloads/Release.asp?ReleaseID=xxxxx 有关该修补程序的附加信息 安装平台: 此修补程序可以安装在下列系统上: Windows NT Server 4.0:Windows NT Server 4.0 修补程序可安装在运行 Service Pack 6a 的系统上。 Windows NT Server Terminal Server Edition: Windows NT Serve Terminal Server Edition 修补程序可安装在运行 Windows NT Server Terminal Server Edition Service Pack 6 的系统上。 Windows 2000: Windows 2000 修补程序可安装在运行 Windows 2000 Service Pack 3 的系统上。 Windows XP: Windows XP 修补程序可安装在运行 Windows XP Gold 或 Windows XP Service Pack 1 的系统上。 是否包括在将来的 Service Pack 中: 此问题的修复程序包含在 Windows 2000 Service Pack 4 中。 此问题的修复程序将包含在 Windows XP Service Pack 2 中。 是否需要重新启动:是。 修补程序是否能卸载:是。 取代的修补程序:无。 验证修补程序安装: 要验证修补程序已安装到系统上,请确认已在系统上创建了以下注册表项: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\…\817606 要验证单个文件,请使用以下注册表项中提供的日期、时间和版本信息: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\…\817606\Filelist 注意事项: 无 本地化:此修补程序的本地化版本可从本布告中"获取修补程序"一节所述的位置获得。 获取其他安全修补程序: 有关其他安全问题的修补程序可从以下位置获得: 安全修补程序可以从 Microsoft Download Center(Microsoft 下载中心)获得,并可轻松地通过搜索关键字“security_patch”找到。 有关客户平台的修补程序可从 WindowsUpdate Web 站点获得。 其他信息: 鸣谢 Microsoft 衷心感谢您向我们报告了此问题并与我们一起致力于保护客户的利益。 支持: Microsoft 知识库文章 817606 讨论了此问题,文章将于此公告发布约 24 小时后提供。知识库文章可以在 Microsoft 在线支持 Web 站点上找到。 技术支持可以从 Microsoft 产品支持服务获得。与安全修补程序相关的支持电话是免费的。 安全性资源:Microsoft TechNet Security Web 站点提供有关 Microsoft 产品安全性的附加信息。 免责声明: Microsoft 知识库中的信息是按"原样"提供的,不带任何形式的担保。Microsoft否认所有明示或暗示的担保,包括适销性和针对特定目的的适用性的担保。即使 Microsoft Corporation 或其供应商事先已被告知损害发生的可能性,Microsoft Corporation 或其供应商也不就任何直接、间接、意外或必然的企业利润损失或特殊损害承担任何责任。一些州不允许排除或限制对必然或意外损害所负的责任,因此上述限制可能不适用。 修订版本: 1.0 版(2003 年 7 月 9 日):公告已发布。