漏洞信息详情
ISC Bind 8 TSIG远程缓冲区溢出漏洞
漏洞简介
BIND是一个实现域名服务协议的服务器软件。它在Internet上被广为使用。 它在TSIG(传输签名)的实现上存在一个缓冲区溢出漏洞,可能允许远程攻击者在BIND服务器上执行任意代码。由于溢出发生在DNS请求的初始化过程中,因此并不需要攻击者控制任何地权威DNS服务器,而且此问题影响所有递归和非递归的DNS服务器。 当收到一个DNS请求时,根据传输协议的不同,DNS请求的数据可能被存放到heap区或者是堆栈中。如果收到的是UDP报文,函数datagram_read()负责将其读入堆栈中的一个513字节大小的缓冲区(u.buf);如果收到的是TCP报文,函数stream_getlen()负责将其读入位于heap区的一个64k大小的缓冲区(sp->s_buf).BIND使用两个关键的变量来跟踪这些缓冲区的使用情况:一个包含缓冲区中的实际长度,名为\"msglen\";另一个变量用来跟踪缓冲区的剩余长度,名为\"buflen\"。当BIND收到一个DNS信息后,msglen被初始化成从网络中接收到的数据长度。buflen被初始化成用来读取这个消息的缓冲区的大小。(对于UDP报文为512字节,对TCP报文为64k)。正常情况下,当BIND处理一个请求时,它会将回复记录附加到请求中。然后它会编辑DNS头,使其反映出这种变化,并发送此响应报文。在此过程中,BIND假设msglen加上buflen的大小等于缓冲区的原长度。从BIND 8.2开始,在BIND处理一个DNS请求之前,它会检查DNS信息的附加区域,检查是否有TSIG资源记录。函数ns_find_tsig()被用来进行这个检查。如果一个有效的TSIG标记被找到,但相应的安全字(security key)却没有找到,BIND将会报错,并绕过了正常的请求处理过程。结果,msglen和buflen都仍然保持它们的初始值。BIND将此请求看作时一个错误请求,它使用原来的请求缓冲区,在问题域中增加一段TSIG信息。这时候,BIND假设请求缓冲区的大小仍然是msglen+buflen.正常情况下,这是正确的,然而,在这种特殊情况下,msglen+buflen几乎是实际缓冲区大小的两倍!这样,当BIND使用ns_sign()函数添加TSIG信息时,它们将被填充在缓冲区之外。由于有效的安全字没有被发现,ns_sign()将只会增加很少的一些字节,而且字节的内容也是有限的。因此这可能导致两种类型的攻击。对于UDP请求,请求缓冲区在堆栈中,攻击者可以使用一些固定的值来覆盖datagram_read()函数保存在堆栈中的激活记录。在x86平台下,用0覆盖保留栈帧指针的最小字节,可能导致该指针指向原来的DNS请求缓冲区。这种单字节溢出可能导致执行任意代码。对于TCP请求,请求缓冲区在heap区中。攻击者可以使用一些固定的值来覆盖malloc()动态分配时的一些边界字节,这样下一个边界信息就可以从攻击者控制的缓冲区中读取,这可能导致一个恶意的指针覆盖,攻击者也可能执行任意代码。
漏洞公告
厂商补丁: Caldera ------- Caldera已经为此发布了一个安全公告(CSSA-2001-008.1)以及相应补丁:
CSSA-2001-008.1:BIND buffer overflow
链接: http://www.caldera.com/support/security/advisories/CSSA-2001-008.1.txt
补丁下载:
Caldera RPM OpenLinux 2.3 bind-8.2.3-1.i386.rpm
ftp://ftp.calderasystems.com/pub/updates/OpenLinux/2.3/current/RPMS/RPMS/bind-8.2.3-1.i386.rpm
Caldera RPM OpenLinux 2.3 bind-doc-8.2.3-1.i386.rpm
ftp://ftp.calderasystems.com/pub/updates/OpenLinux/2.3/current/RPMS/RPMS/bind-doc-8.2.3-1.i386.rpm
Caldera RPM OpenLinux 2.3 bind-utils-8.2.3-1.i386.rpm
ftp://ftp.calderasystems.com/pub/updates/OpenLinux/2.3/current/RPMS/RPMS/bind-utils-8.2.3-1.i386.rpm
Caldera RPM eServer 2.3.1/eBuilder for ECential 3.0 bind-8.2.3-1.i386.rpm
ftp://ftp.calderasystems.com/pub/updates/eServer/2.3/current/RPMS/RPMS/bind-8.2.3-1.i386.rpm
Caldera RPM eServer 2.3.1/eBuilder for ECential 3.0 bind-doc-8.2.3-1.i386.rpm
ftp://ftp.calderasystems.com/pub/updates/eServer/2.3/current/RPMS/RPMS/bind-doc-8.2.3-1.i386.rpm
Caldera RPM eServer 2.3.1/eBuilder for ECential 3.0 bind-utils-8.2.3-1.i386.rpm
ftp://ftp.calderasystems.com/pub/updates/eServer/2.3/current/RPMS/RPMS/bind-utils-8.2.3-1.i386.rpm
Caldera RPM eDesktop 2.4 bind-8.2.3-1.i386.rpm
ftp://ftp.calderasystems.com/pub/updates/eDesktop/2.4/current/RPMS/RPMS/bind-8.2.3-1.i386.rpm
Caldera RPM eDesktop 2.4 bind-doc-8.2.3-1.i386.rpm
ftp://ftp.calderasystems.com/pub/updates/eDesktop/2.4/current/RPMS/RPMS/bind-doc-8.2.3-1.i386.rpm
Caldera RPM eDesktop 2.4 bind-utils-8.2.3-1.i386.rpm
ftp://ftp.calderasystems.com/pub/updates/eDesktop/2.4/current/RPMS/RPMS/bind-utils-8.2.3-1.i386.rpm
Caldera Hotfix OpenServer
ftp://ftp.sco.com/pub/security/openserver/sr379322/newbind.tar.Z Conectiva --------- Conectiva已经为此发布了一个安全公告(CLA-2001:377)以及相应补丁:
CLA-2001:377:Buffer overflow in bind allows a remote exploit
链接: http://distro.conectiva.com.br/atualizacoes/?id=a&anuncio=000377
补丁下载:
tp://atualizacoes.conectiva.com.br/4.0/SRPMS/bind-8.2.3-1cl.src.rpm
ftp://atualizacoes.conectiva.com.br/4.0/i386/bind-8.2.3-1cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/4.0/i386/bind-devel-8.2.3-1cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/4.0/i386/bind-devel-static-8.2.3-1cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/4.0/i386/bind-doc-8.2.3-1cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/4.0/i386/bind-utils-8.2.3-1cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/4.0es/SRPMS/bind-8.2.3-1cl.src.rpm
ftp://atualizacoes.conectiva.com.br/4.0es/i386/bind-8.2.3-1cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/4.0es/i386/bind-devel-8.2.3-1cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/4.0es/i386/bind-devel-static-8.2.3-1cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/4.0es/i386/bind-doc-8.2.3-1cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/4.0es/i386/bind-utils-8.2.3-1cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/4.1/SRPMS/bind-8.2.3-1cl.src.rpm
ftp://atualizacoes.conectiva.com.br/4.1/i386/bind-8.2.3-1cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/4.1/i386/bind-devel-8.2.3-1cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/4.1/i386/bind-devel-static-8.2.3-1cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/4.1/i386/bind-doc-8.2.3-1cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/4.1/i386/bind-utils-8.2.3-1cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/4.2/SRPMS/bind-8.2.3-1cl.src.rpm
ftp://atualizacoes.conectiva.com.br/4.2/i386/bind-8.2.3-1cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/4.2/i386/bind-devel-8.2.3-1cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/4.2/i386/bind-devel-static-8.2.3-1cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/4.2/i386/bind-doc-8.2.3-1cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/4.2/i386/bind-utils-8.2.3-1cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/5.0/SRPMS/bind-8.2.3-1cl.src.rpm
ftp://atualizacoes.conectiva.com.br/5.0/SRPMS/bind-chroot-8.2.3-1cl.src.rpm
ftp://atualizacoes.conectiva.com.br/5.0/i386/bind-8.2.3-1cl.i386.rpm
参考网址
来源:CERT/CC Advisory: CA-2001-02 名称: CA-2001-02 链接:http://www.cert.org/advisories/CA-2001-02.html 来源: BID 名称: 2302 链接:http://www.securityfocus.com/bid/2302 来源: REDHAT 名称: RHSA-2001:007 链接:http://www.redhat.com/support/errata/RHSA-2001-007.html 来源: NAI 名称: 20010129 Vulnerabilities in BIND 4 and 8 链接:http://www.nai.com/research/covert/advisories/047.asp 来源: DEBIAN 名称: DSA-026 链接:http://www.debian.org/security/2001/dsa-026
受影响实体
- Isc Bind:8.2.2:P2<!--2000-1-1-->
- Isc Bind:8.2.2:P3<!--2000-1-1-->
- Isc Bind:8.2.2:P4<!--2000-1-1-->
- Isc Bind:8.2.2:P5<!--2000-1-1-->
- Isc Bind:8.2.2:P6<!--2000-1-1-->
补丁
暂无
还没有评论,来说两句吧...