安全研究

安全漏洞
FreeBSD sendfile(2)函数只写文件权限绕过安全限制漏洞

发布日期:2008-02-14
更新日期:2008-02-20

受影响系统:
FreeBSD FreeBSD 7.0
FreeBSD FreeBSD 6.3
FreeBSD FreeBSD 6.2
FreeBSD FreeBSD 5.5
描述:
BUGTRAQ  ID: 27789
CVE(CAN) ID: CVE-2008-0777

FreeBSD就是一种运行在Intel平台上、可以自由使用的开放源码Unix类系统。

FreeBSD在处理文件的访问控制时存在漏洞,本地攻击者可能利用此漏洞获取敏感信息。

当进程打开文件(和其他文件系统对象,如目录)时,会指定访问标记说明所要进行的读、写或其他操作。会对这些标记检查文件系统权限,然后存储到所生成的文件描述符,以验证之后的操作。

FreeBSD的sendfile(2)系统调用在从文件发送数据之前没有检查文件描述符访问标记,如果文件为只写的话,则即使用户无法读访问文件,用户进程仍可以打开文件并使用sendfile通过套接字发送文件的内容,导致可能泄露敏感信息。仅在系统存在只写文件时系统才会受漏洞影响,而这种情况并不常见。

<*来源:Kostik Belousov (kostikbel@gmail.com
  
  链接:http://secunia.com/advisories/28928
        ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-08:03.sendfile.asc
*>

建议:
厂商补丁:

FreeBSD
-------
FreeBSD已经为此发布了一个安全公告(FreeBSD-SA-08:03)以及相应补丁:
FreeBSD-SA-08:03:sendfile(2) write-only file permission bypass
链接:ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-08:03.sendfile.asc

补丁下载:

执行以下步骤之一:

1) 将有漏洞的系统升级到5-STABLE、6-STABLE或7.0-PRERELEASE,或修改日期之后的RELENG_7_0、RELENG_6_3、RELENG_6_2、RELENG_6_1或RELENG_5_5安全版本。

2) 为当前系统打补丁:

以下补丁确认可应用于FreeBSD 5.5、6.1、6.2、6.3和7.0系统。

a) 从以下位置下载相关补丁,并使用PGP工具验证附带的PGP签名。

[FreeBSD 6.2、6.3和7.0]
# fetch http://security.FreeBSD.org/patches/SA-08:03/sendfile.patch
# fetch http://security.FreeBSD.org/patches/SA-08:03/sendfile.patch.asc

[FreeBSD 6.1]
# fetch http://security.FreeBSD.org/patches/SA-08:03/sendfile61.patch
# fetch http://security.FreeBSD.org/patches/SA-08:03/sendfile61.patch.asc

[FreeBSD 5.5]
# fetch http://security.FreeBSD.org/patches/SA-08:03/sendfile55.patch
# fetch http://security.FreeBSD.org/patches/SA-08:03/sendfile55.patch.asc

b) 以root执行以下命令:

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

c) 如<http://www.freebsd.org/handbook/kernelconfig.html> 所述重新编译操作系统并重启系统。

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