FREEBSD stdio文件描述符处理不安全漏洞发布时间:2002-04-24 更新时间:2002-04-24 严重程度:高 威胁程度:本地管理员权限 错误类型:设计错误 利用方式:服务器模式 受影响系统 所有FreeBSD版本详细描述 按照惯例,POSIX系统关联文件描述符0,1,2相应为标准输入,标准输出,标准错误。所有应用程序给予stdio文件描述符特殊的重要性,如写错误信息到标准错误上。 在新的进程中,所有文件描述符从父进程中复制,除非这些描述符被标志为close-on-exec,它们会在exec期间保持他们的状态。 所有POSIX系统分配文件描述符按照一定的顺序,一般以最低没有使用的文件描述符分配,如一个新的exec进程有0和1文件描述符打开,但文件2描述符关闭的,然后打开一个文件,新的描述符将被指派为2(标准错误)。 一些程序被设置为setuid或者setgid,因此运行时会增加权限,如果一程序以其他某些关闭了的stdio文件描述符启动,程序打开文件并不注意的关联了它的标准输入,标准输出,标准错误,当程序写读数据的时候就会不正确,就可能导致权限提升。 keyinit存在此漏洞。 测试代码 尚无 解决方案 临时解决方案: # chmod 0555 /usr/bin/keyinit 1)升级到4.5-STABLE,或者升级到RELENG_4_5 (4.5-RELEASE-p4)或者RELENG_4_4 (4.4-RELEASE-p11)正确修改日期之后。 2)下载补丁: # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-02:23/stdio.patch # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-02:23/stdio.patch.asc 相关信息 FreeBSD Security Advisory FreeBSD-SA-02:23.stdio 参考:http://archives.neohapsis.com/archives/bugtraq/2002-04/0299.html |