BUGTRAQ ID: 27799
CVE(CAN) ID: CVE-2008-0009
Linux Kernel是开放源码操作系统Linux所使用的内核。
Linux Kernel的实现上存在漏洞,本地攻击者可能利用此漏洞提升自己的权限。
Linux Kernel的fs/splice.c文件中的vmsplice_to_user()函数错误地引用了用户提供的内存指针:
---8<--- fs/splice.c:1378 ---8<---
error = get_user(base, &iov->iov_base);
/* ... */
if (unlikely(!base)) {
error = -EFAULT;
break;
}
/* ... */
sd.u.userptr = base;
/* ... */
size = __splice_from_pipe(pipe, &sd, pipe_to_user);
---8<--- fs/splice.c:1401 ---8<---
这段代码没有验证这些指针。__splice_from_pipe()假设这些指针为有效的用户内存指针,没有执行任何验证。函数用pipe_to_user()中的__copy_to_user_inatomic()函数引用了指针,以便将数据写入用户进程内存,导致可能将从管道读取的任意数据写入到内核内存。本地攻击者可以通过特制的vmsplice()系统调用导致获得root用户权限。
Linux kernel 2.6.22 - 2.6.24
厂商补丁:
Linux
-----
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
<a href=http://www.kernel.org/pub/linux/kernel/v2.6/patch-2.6.24.1.bz2 target=_blank>http://www.kernel.org/pub/linux/kernel/v2.6/patch-2.6.24.1.bz2</a>
暂无评论