首页 -> 安全研究

安全研究

安全漏洞
BSD ftpd单字节缓冲区溢出漏洞

发布日期:2000-12-18
更新日期:2001-04-27

受影响系统:
FreeBSD ftpd
BSD ftpd 0.3.2
    - Debian Linux 1.0
David A. Holland linux-ftpd 0.17
    - Debian Linux 1.0
David Madore ftpd-BSD 0.2.3
    - Caldera Open Linux 2.4
    - Caldera Open Linux 2.3
    - Caldera Open Linux 2.2
    - Debian Linux 2.3
    - Debian Linux 2.2
    - Debian Linux 2.1
    - Debian Linux 2.0
    - Mandrake Linux 7.2
    - Mandrake Linux 7.1
    - Mandrake Linux 7.0
    - Mandrake Linux 6.1
    - Mandrake Linux 6.0
    - RedHat Linux 7.0
    - RedHat Linux 6.0
    - RedHat Linux 5.0
    - Slackware Linux 7.1
    - Slackware Linux 7.0
    - Slackware Linux 4.0
NetBSD ftpd
    - NetBSD 1.5
    - NetBSD 1.4.2
    - NetBSD 1.4.1
    - NetBSD 1.4
OpenBSD ftpd
    - OpenBSD 2.8
    - OpenBSD 2.7
    - OpenBSD 2.6
    - OpenBSD 2.5
    - OpenBSD 2.4
不受影响系统:
David Madore ftpd-BSD 0.2.3-4
FreeBSD ftpd
    - FreeBSD 4.2
FreeBSD ftpd
    - FreeBSD 4.1.1
FreeBSD ftpd
    - FreeBSD 4.1
FreeBSD ftpd
    - FreeBSD 4.0
FreeBSD ftpd
    - FreeBSD 3.5
FreeBSD ftpd
    - FreeBSD 3.4
FreeBSD ftpd
    - FreeBSD 3.3
FreeBSD ftpd
    - FreeBSD 3.2
描述:
BUGTRAQ  ID: 2124
CVE(CAN) ID: CVE-2001-0053

源自4.x BSD的FTP服务器实现包含一个严重漏洞,可以远程获取root权限。

在replydirname()函数中存在单字节缓冲区溢出,此时会覆盖修改被保存的EBP寄存器,当replydirname()函数返回的时候,主调函数中EBP寄存器值被设置成修改后的值。如果主调函数不受此影响并开始正常返回,由于EBP寄存器值已经是修改后的值,提取用于返回的EIP寄存器值的时候并不是从正常位置提取,如果相关栈区在攻击者控制下,程序流程发生变化,此时可以继续采用传统缓冲区溢出技术进一步获取root权限。

如果系统支持匿名可写目录,比如存在incoming目录,该漏洞很容易成功。缺省情况下溢出条件不满足。此外,OpenBSD缺省情况下FTP服务是关闭的。

<*来源:Scrippie (scrippie@grafix.nl
  
  链接:http://online.securityfocus.com/archive/1/151896
        http://online.securityfocus.com/archive/1/151698
        http://online.securityfocus.com/archive/1/10884
        http://lists.progeny.com/archive/progeny-security-announce/2001/msg00011.html
        ftp://ftp.netbsd.org/pub/NetBSD/security/advisories/NetBSD-SA2000-018.txt.asc
*>

测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

TESO Crew 提供了如下测试程序:

http://teso.scene.at/releases/7350oftpd.tar.gz

建议:
厂商补丁:

BSD
---
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

Progeny Upgrade 1.0 i386 bsd-ftpd_0.3.2-7_i386.deb
http://archive.progeny.com/progeny/updates/newton/bsd-ftpd_0.3.2-7_i386.deb

David A. Holland
----------------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

Progeny Upgrade 1.0 i386 ftpd_0.17-3_i386.deb
http://archive.progeny.com/progeny/updates/newton/ftpd_0.17-3_i386.deb

David Madore
------------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

samiam.org RPM Linux ftpd-BSD-0.2.3-4.i386
http://www.samiam.org/rpms/ftpd-BSD-0.2.3-4.i386.rpm

NetBSD
------
NetBSD已经为此发布了一个安全公告(NetBSD-SA2000-018)以及相应补丁:
NetBSD-SA2000-018:One-byte buffer overrun in ftpd
链接:ftp://ftp.netbsd.org/pub/NetBSD/security/advisories/NetBSD-SA2000-018.txt.asc

补丁下载:

NetBSD Patch 1.5 20001220-ftpd-1.5
ftp://ftp.NetBSD.ORG/pub/NetBSD/misc/security/patches/20001220-ftpd-1.5
# cd /usr/src/libexec/ftpd
# patch < 20001220-ftpd
# make cleandir
# make depend
# make # make install

OpenBSD
-------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

OpenBSD Patch 005_ftpd.patch
http://www.securityfocus.com/data/vulnerabilities/patches/  005_ftpd.patch
Apply by doing:

cd /usr/src patch -p0 < 005_ftpd.patch

And then rebuild and install ftpd:

cd libexec/ftpd
make obj
make depend
make
make install

浏览次数:5295
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障