BSD中的libc库和ISC BIND包含DNS查询功能,用于对DNS信息进行解析。 BSD和ISC BIND使用的DNS解析库在处理DNS应答信息时存在漏洞,远程攻击者可以利用此漏洞伪造DNS信息进行应答而以解析DNS信息的应用程序进程的权限在目标系统上执行任意指令。 域名系统DNS提供相关IP网络和设备的名字,地址和其他相关的信息,通过发送DNS请求和解析DNS应答,操作系统可以访问DNS信息,当IP网络应用程序需要访问或者处理DNS信息时,它会调用DNS分支解析库中的函数,这些函数在系统中是底部网络操作系统中的一部分,在基于BSD的系统中,DNS分支解析函数由系统libc库实现,而在ISC BIND中,它们由libbind实现。 问题存在于lib/libc/net/gethnamaddr.c:getanswer()和lib/libc/net/getnetnamadr.c:getnetanswer()函数中,DNS信息有特殊的字节对齐需要,用于在信息中进行填充,而在这两个函数在处理中,当计算可用缓冲空间时没有进行充分考虑,结果导致解析DNS信息时产生缓冲区溢出,精心构建的DNS应答信息可能以解析DNS信息的应用程序进程的权限执行任意指令。 值得注意的是此漏洞不同于普通的网络守护程序缓冲区溢出,任何执行外出DNS查询的主机都可能存在此漏洞,攻击者甚至可以使用HTML形式,嵌入伪造DNS服务器对象的电子邮件发送给netscape用户而触发。所以任何使用这个有漏洞的解析库应用程序都存在此漏洞,使用静态连接的应用程序需要使用修正过的解析库进行重新编译。
BSD中的libc库和ISC BIND包含DNS查询功能,用于对DNS信息进行解析。 BSD和ISC BIND使用的DNS解析库在处理DNS应答信息时存在漏洞,远程攻击者可以利用此漏洞伪造DNS信息进行应答而以解析DNS信息的应用程序进程的权限在目标系统上执行任意指令。 域名系统DNS提供相关IP网络和设备的名字,地址和其他相关的信息,通过发送DNS请求和解析DNS应答,操作系统可以访问DNS信息,当IP网络应用程序需要访问或者处理DNS信息时,它会调用DNS分支解析库中的函数,这些函数在系统中是底部网络操作系统中的一部分,在基于BSD的系统中,DNS分支解析函数由系统libc库实现,而在ISC BIND中,它们由libbind实现。 问题存在于lib/libc/net/gethnamaddr.c:getanswer()和lib/libc/net/getnetnamadr.c:getnetanswer()函数中,DNS信息有特殊的字节对齐需要,用于在信息中进行填充,而在这两个函数在处理中,当计算可用缓冲空间时没有进行充分考虑,结果导致解析DNS信息时产生缓冲区溢出,精心构建的DNS应答信息可能以解析DNS信息的应用程序进程的权限执行任意指令。 值得注意的是此漏洞不同于普通的网络守护程序缓冲区溢出,任何执行外出DNS查询的主机都可能存在此漏洞,攻击者甚至可以使用HTML形式,嵌入伪造DNS服务器对象的电子邮件发送给netscape用户而触发。所以任何使用这个有漏洞的解析库应用程序都存在此漏洞,使用静态连接的应用程序需要使用修正过的解析库进行重新编译。