当前位置: 安全纵横 > 安全公告

FreeBSD ftpd setusercontext()远程权限提升漏洞

更新日期:2009-08-24
受影响系统:

FreeBSD 7.0
FreeBSD 5.0

描述:
FreeBSD就是一种运行在Intel平台上、可以自由使用的开放源码Unix类系统。
FreeBSD及其他一些BSD系统有一个用于设置用户上下文的功能,如FreeBSD中的setusercontext()函数:
setusercontext(lc, pw, (uid_t)0,
LOGIN_SETLOGIN|LOGIN_SETGROUP|LOGIN_SETPRIORITY|
LOGIN_SETRESOURCES|LOGIN_SETUMASK);
其中的LOGIN_SETRESOURCES设置允许用户设置资源。根据用户手册所述:
LOGIN_SETRESOURCES? 根据系统登录类数据库中所指定的值为当前进程设置资源限制。使用类功能标签,可选择-cur(软限制)或-max(硬限制)后缀及相关的资源设置:
cputime RLIMIT_CPU
filesize RLIMIT_FSIZE
datasize RLIMIT_DATA
stacksize RLIMIT_STACK
coredumpsize RLIMIT_CORE
memoryuse RLIMIT_RSS
memorylocked RLIMIT_MEMLOCK
maxproc RLIMIT_NPROC
openfiles RLIMIT_NOFILE
sbsize RLIMIT_SBSIZE
vmemoryuse RLIMIT_VMEM
远程攻击者可以利用这些选项设置自己的~/.login_conf配置。例如,将openfiles设置为5就可以绕过ftpd.c中的chroot()限制。
厂商补丁:
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://www.freebsd.org/security/index.html