首页 -> 安全研究

安全研究

绿盟月刊
绿盟安全月刊->第33期->最新漏洞
期刊号: 类型: 关键词:
多家厂商DNS解析函数库远程缓冲区溢出漏洞

日期:2002-07-17

发布日期: 2002-6-26
更新日期: 2002-7-1
受影响的系统:  
FreeBSD FreeBSD 4.6-RELEASE
FreeBSD FreeBSD 4.6
FreeBSD FreeBSD 4.5-STABLE
FreeBSD FreeBSD 4.5-RELEASE
FreeBSD FreeBSD 4.5
FreeBSD FreeBSD 4.4-STABLE
FreeBSD FreeBSD 4.4-RELENG
FreeBSD FreeBSD 4.4
FreeBSD FreeBSD 4.3-STABLE
FreeBSD FreeBSD 4.3-RELENG
FreeBSD FreeBSD 4.3-RELEASE
FreeBSD FreeBSD 4.3
ISC BIND 8.2.3
ISC BIND 8.2.2
ISC BIND 8.2.1
ISC BIND 8.2
ISC BIND 8.1.2
ISC BIND 8.1.1
ISC BIND 8.1
ISC BIND 4.9.7
ISC BIND 4.9.6
ISC BIND 4.9.5
ISC BIND 4.9.4
ISC BIND 4.9.3
NetBSD NetBSD 1.5.2
NetBSD NetBSD 1.5.1
NetBSD NetBSD 1.5 x86
NetBSD NetBSD 1.5 sh3
NetBSD NetBSD 1.5
NetBSD NetBSD 1.4.3
NetBSD NetBSD 1.4.2 x86
NetBSD NetBSD 1.4.2 SPARC
NetBSD NetBSD 1.4.2 arm32
NetBSD NetBSD 1.4.2 Alpha
NetBSD NetBSD 1.4.2
NetBSD NetBSD 1.4.1 x86
NetBSD NetBSD 1.4.1 SPARC
NetBSD NetBSD 1.4.1 sh3
NetBSD NetBSD 1.4.1 arm32
NetBSD NetBSD 1.4.1 Alpha
NetBSD NetBSD 1.4.1
NetBSD NetBSD 1.4 x86
NetBSD NetBSD 1.4 SPARC
NetBSD NetBSD 1.4 arm32
NetBSD NetBSD 1.4 Alpha
NetBSD NetBSD 1.4
OpenBSD OpenBSD 3.1
OpenBSD OpenBSD 3.0
OpenBSD OpenBSD 2.9
OpenBSD OpenBSD 2.8
OpenBSD OpenBSD 2.7
ISC BIND 4.9
    - Linux系统  
    - Unix系统  

描述:
----------------------------------------------------------------------

BUGTRAQ  ID: 5100
CVE(CAN) ID: CAN-2002-0651

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用户而触发。所以任何使用这个有漏洞的解析库应用程序都存在此漏洞,使用静态连接的应用程序需要使用修正过的解析库进行重新编译。

<*来源:Joost Pol (joost@pine.nl)
  
  链接:http://www.pine.nl/advisories/pine-cert-20020601.txt
        ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:28.resolv.asc
        ftp://ftp.netbsd.org/pub/NetBSD/security/advisories/NetBSD-SA2002-006.txt.asc
        http://www.cert.org/advisories/CA-2002-19.html
*>

----------------------------------------------------------------------
建议:

临时解决方法:

如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:

* 有此漏洞的系统需要指定使用信任的,能重新构建所有DNS应答的本地缓冲DNS服务器来防止恶意DNS响应。
  
  所有使用静态连接的应用程序需要使用修正过的解析库进行重新编译。

厂商补丁:

FreeBSD
-------
FreeBSD已经为此发布了一个安全公告(FreeBSD-SA-02:28)以及相应补丁:
FreeBSD-SA-02:28:buffer overflow in resolver
链接:ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:28.resolv.asc

补丁下载:

FreeBSD Patch resolv.patch.asc
ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-02:28/resolv.patch.asc

修补软件步骤和命令如下:

1)下载补丁:

  # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-02:28/resolv.patch
  # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-02:28/resolv.patch.asc

2) 执行下面的命令给程序打补丁:

  # cd /usr/src
  # patch < /path/to/patch

3) 重新编译软件。

ISC
---
目前厂商已经在最新版本的软件中修复这个安全问题,请到厂商的主页下载:

ftp://ftp.isc.org/isc/bind/src/4.9.9/
ftp://ftp.isc.org/isc/bind/src/8.2.6/
ftp://ftp.isc.org/isc/bind/src/8.3.3/
ftp://ftp.isc.org/isc/bind/contrib/ntbind-8.3.3/

NetBSD
------
NetBSD已经为此发布了一个安全公告(NetBSD-SA2002-006)以及相应补丁:
NetBSD-SA2002-006:buffer overrun in libc DNS resolver
链接:ftp://ftp.netbsd.org/pub/NetBSD/security/advisories/NetBSD-SA2002-006.txt.asc

安装更新软件命令如下:

# cd src
# cvs update -d -P -r netbsd-1-5 lib/libc/net

# cd lib/libc
# make cleandir dependall
# make install

# cd ../..
# make dependall
# make install

OpenBSD
-------
OpenBSD已经为此发布了一个安全补丁,请到如下地址下载:

OpenBSD OpenBSD 2.9:

OpenBSD Patch 027_resolver.patch
ftp://ftp.openbsd.org/pub/OpenBSD/patches/2.9/common/027_resolver.patch

OpenBSD OpenBSD 3.0:

OpenBSD Patch 025_resolver.patch
ftp://ftp.openbsd.org/pub/OpenBSD/patches/3.0/common/025_resolver.patch

OpenBSD OpenBSD 3.1:

OpenBSD Patch 007_resolver.patch
ftp://ftp.openbsd.org/pub/OpenBSD/patches/3.1/common/007_resolver.patch
版权所有,未经许可,不得转载