Sun公司的XDR库中所带的xdr_array()函数中存在一个整数溢出漏洞,攻击者可能利用这个漏洞远程或本地获取root权限。由于很多厂商都使用了Sun的XDR库或者基于Sun的库进行开发,其中也包含了这些问题代码,因此很多厂商的应用程序也受此问题影响。 XDR(外部数据表示)库用来提供一种平台无关的方法来将数据从一个系统进程发送给其他系统进程,比如通过一个网络连接发送。这种例程在远程过程调用(RPC)实现中被普遍使用,使其对程序员来说是透明的,他只需使用通用接口来与很多不同种类的系统通信。Sun公司开发的XDR库包含一个xdr_array()函数,它用来实现可变长度数组的本地C表示与它们的平台无关的XDR表示的转换。然而,它在计算nodesize变量时采用的方法可能导致一个整数溢出。攻击者可以构造一个特殊的XDR编码来触发整数溢出,依赖于使用者如何调用xdr_array()函数,攻击者可能覆盖一个已经分配的堆区缓冲区,造成堆缓缓冲区溢出。攻击者可能造成远程服务崩溃或者利用malloc实现的一些特点来改变内存数据并执行任意代码。 很多厂商的RPC XDR实现都是基于Sun公司的代码开发的,因此都存在上述漏洞。所有使用那些有问题的XDR实现的应用程序都可能受此漏洞影响。目前已知的受影响的厂商以及应用程序如下: * Sun Microsystems libnsl库 (dmispd和rpc.cmsd) * BSD系列的带XDR/RPC例程的库 (libc) * GNU C library 带sunrpc (glibc) * MIT Kerberos 5 管理系统 (kadmind) * OpenAFS 1.0 - 1.2.5, OpenAFS 1.3.0 - 1.3.2 * Apple MacOS X
Sun公司的XDR库中所带的xdr_array()函数中存在一个整数溢出漏洞,攻击者可能利用这个漏洞远程或本地获取root权限。由于很多厂商都使用了Sun的XDR库或者基于Sun的库进行开发,其中也包含了这些问题代码,因此很多厂商的应用程序也受此问题影响。 XDR(外部数据表示)库用来提供一种平台无关的方法来将数据从一个系统进程发送给其他系统进程,比如通过一个网络连接发送。这种例程在远程过程调用(RPC)实现中被普遍使用,使其对程序员来说是透明的,他只需使用通用接口来与很多不同种类的系统通信。Sun公司开发的XDR库包含一个xdr_array()函数,它用来实现可变长度数组的本地C表示与它们的平台无关的XDR表示的转换。然而,它在计算nodesize变量时采用的方法可能导致一个整数溢出。攻击者可以构造一个特殊的XDR编码来触发整数溢出,依赖于使用者如何调用xdr_array()函数,攻击者可能覆盖一个已经分配的堆区缓冲区,造成堆缓缓冲区溢出。攻击者可能造成远程服务崩溃或者利用malloc实现的一些特点来改变内存数据并执行任意代码。 很多厂商的RPC XDR实现都是基于Sun公司的代码开发的,因此都存在上述漏洞。所有使用那些有问题的XDR实现的应用程序都可能受此漏洞影响。目前已知的受影响的厂商以及应用程序如下: * Sun Microsystems libnsl库 (dmispd和rpc.cmsd) * BSD系列的带XDR/RPC例程的库 (libc) * GNU C library 带sunrpc (glibc) * MIT Kerberos 5 管理系统 (kadmind) * OpenAFS 1.0 - 1.2.5, OpenAFS 1.3.0 - 1.3.2 * Apple MacOS X