首页 -> 安全研究
安全研究
安全漏洞
Wu-ftpd fb_realpath()远程单字节缓冲区溢出漏洞
发布日期:2003-07-31
更新日期:2003-08-04
受影响系统:
Washington University wu-ftpd 2.6.2描述:
Washington University wu-ftpd 2.6.1
Washington University wu-ftpd 2.6.0
Washington University wu-ftpd 2.5.0
BUGTRAQ ID: 8315
CVE(CAN) ID: CAN-2003-0466
Wu-ftpd是一款流行的开放源码的全功能的FTP服务器程序。
Wu-ftpd FTP服务程序实现上存在远程单字节溢出问题,本地或远程攻击者可能利用这个漏洞以root用户权限在系统上执行任意指令。
问题存在于fb_realpath()函数,当构建路径的长度等于MAXPATHLEN+1长度时就会触发溢出。漏洞是由于在连接字符串长度计算中错误的使用rootd变量造成的:
------8<------cut-here------8<------
/*
* Join the two strings together, ensuring that the right thing
* happens if the last component is empty, or the dirname is root.
*/
if (resolved[0] == '/' && resolved[1] == '\0')
rootd = 1;
else
rootd = 0;
if (*wbuf) {
if (strlen(resolved) + strlen(wbuf) + rootd + 1 > MAXPATHLEN) {
errno = ENAMETOOLONG;
goto err1;
}
if (rootd == 0)
(void) strcat(resolved, "/");
(void) strcat(resolved, wbuf);
}
------8<------cut-here------8<------
由于路径是由当前工作目录和各个FTP命令参数指定的文件名构建,因此攻击者需要创建深层目录结构。
下面的FTP命令可以用来造成缓冲区溢出:
STOR
RETR
APPE
DELE
MKD
RMD
STOU
RNTO
如果缓冲区大小超过MAXPATHLEN字符,就不能利用这个漏洞,因此如果wu-ftpd在部分Linux内核下(如PATH_MAX超过4095字节)编译,就不存在这个漏洞。
如果缓冲区大小超过MAXPATHLEN,将无法利用该漏洞。某些环境中PATH_MAX以及MAXPATHLEN被精确定义成4095,编译时由于优化对齐,缓冲区最终将有4096字节。此时无法利用该漏洞。Linux 2.2.x以及一些早期2.4.x内核就是这样定义的。一般来说,在2.0.x或后期2.4.x内核上编译的Wu-ftpd才受此漏洞影响。
<*来源:Janusz Niewiadomski (funkysh@isec.pl)
链接:http://marc.theaimsgroup.com/?l=bugtraq&m=105967301604815&w=2
https://www.redhat.com/support/errata/RHSA-2003-245.html
http://www.linux-mandrake.com/en/security/2003/2003-080.php
http://www.debian.org/security/2003/dsa-357
ftp://ftp.netbsd.org/pub/NetBSD/security/advisories/NetBSD-SA2003-011.txt.asc
*>
建议:
厂商补丁:
Debian
------
Debian已经为此发布了一个安全公告(DSA-357-1)以及相应补丁:
DSA-357-1:New wu-ftpd packages fix buffer overflow
链接:http://www.debian.org/security/2002/dsa-357
补丁下载:
Source archives:
http://security.debian.org/pool/updates/main/w/wu-ftpd/wu-ftpd_2.6.2.orig.tar.gz
Size/MD5 checksum: 354784 b3c271f02aadf663b8811d1bff9da3f6
http://security.debian.org/pool/updates/main/w/wu-ftpd/wu-ftpd_2.6.2-3woody1.dsc
Size/MD5 checksum: 713 0e7285b9fd050b4e8a30aa21d62f44d8
http://security.debian.org/pool/updates/main/w/wu-ftpd/wu-ftpd_2.6.2-3woody1.diff.gz
Size/MD5 checksum: 99967 88c990894af29cce4d14ee6822069542
Architecture independent packages:
http://security.debian.org/pool/updates/main/w/wu-ftpd/wu-ftpd-academ_2.6.2-3woody1_all.deb
Size/MD5 checksum: 3476 79da608623ce421a11c568e97565f537
alpha architecture (DEC Alpha)
http://security.debian.org/pool/updates/main/w/wu-ftpd/wu-ftpd_2.6.2-3woody1_alpha.deb
Size/MD5 checksum: 291540 20b379bd4495f8d810cc75f4188e0f94
arm architecture (ARM)
http://security.debian.org/pool/updates/main/w/wu-ftpd/wu-ftpd_2.6.2-3woody1_arm.deb
Size/MD5 checksum: 265158 f5d590b10861f6f355d40d501cf35e75
hppa architecture (HP PA RISC)
http://security.debian.org/pool/updates/main/w/wu-ftpd/wu-ftpd_2.6.2-3woody1_hppa.deb
Size/MD5 checksum: 275684 4cc9e3eb212401091d4f51ddf54dd771
i386 architecture (Intel ia32)
http://security.debian.org/pool/updates/main/w/wu-ftpd/wu-ftpd_2.6.2-3woody1_i386.deb
Size/MD5 checksum: 255102 f79202c825c979fafd8de828401a8179
ia64 architecture (Intel ia64)
http://security.debian.org/pool/updates/main/w/wu-ftpd/wu-ftpd_2.6.2-3woody1_ia64.deb
Size/MD5 checksum: 321168 30d2ce430f8ae75eabf76d9f2427f6cb
m68k architecture (Motorola Mc680x0)
http://security.debian.org/pool/updates/main/w/wu-ftpd/wu
补丁安装方法:
1. 手工安装补丁包:
首先,使用下面的命令来下载补丁软件:
# wget url (url是补丁下载链接地址)
然后,使用下面的命令来安装补丁:
# dpkg -i file.deb (file是相应的补丁名)
2. 使用apt-get自动安装补丁包:
首先,使用下面的命令更新内部数据库:
# apt-get update
然后,使用下面的命令安装更新软件包:
# apt-get upgrade
MandrakeSoft
------------
MandrakeSoft已经为此发布了一个安全公告(MDKSA-2003:080)以及相应补丁:
MDKSA-2003:080:Updated wu-ftpd packages fix remote root vulnerability
链接:http://www.linux-mandrake.com/en/security/2003/2003-080.php
补丁下载:
Updated Packages:
Mandrake Linux 8.2:
ftp://download.sourceforge.net/pub/mirrors/mandrake/updates/8.2/RPMS/wu-ftpd-2.6.2-1.1mdk.i586.rpm
ftp://download.sourceforge.net/pub/mirrors/mandrake/updates/8.2/SRPMS/wu-ftpd-2.6.2-1.1mdk.src.rpm
Mandrake Linux 8.2/PPC:
ftp://download.sourceforge.net/pub/mirrors/mandrake/updates/ppc/8.2/RPMS/wu-ftpd-2.6.2-1.1mdk.ppc.rpm
ftp://download.sourceforge.net/pub/mirrors/mandrake/updates/ppc/8.2/SRPMS/wu-ftpd-2.6.2-1.1mdk.src.rpm
上述升级软件还可以在下列地址中的任意一个镜像ftp服务器上下载:
http://www.mandrakesecure.net/en/ftp.php
NetBSD
------
NetBSD已经为此发布了一个安全公告(NetBSD-SA2003-011)以及相应补丁:
NetBSD-SA2003-011:off-by-one error in realpath(3)
链接:ftp://ftp.netbsd.org/pub/NetBSD/security/advisories/NetBSD-SA2003-011.txt.asc
执行如下操作:
# cd src
# cvs update -d -P lib/libc
# cd lib/libc
# make USETOOLS=no cleandir dependall
# make USETOOLS=no install
# cd ../../rescue
# make USETOOLS=no cleandir dependall
# make USETOOLS=no install
RedHat
------
http://www.debian.org/security/2003/dsa-357
浏览次数:6929
严重程度:0(网友投票)
绿盟科技给您安全的保障