Linux kernel 2.6.x
Linux Kernel 64位Personality处理本地拒绝服务漏洞
SEBUG-ID:19052
SEBUG-Appdir:Linux
Published:2010-02-02
Vulnerable:
Discription:
BUGTRAQ ID: 38027 Linux Kernel是开放源码操作系统Linux所使用的内核。 Linux Kernel在设置进程的personality时存在错误,本地用户在执行缺少ELF解释器的64位应用时可能触发分段错误,导致内核崩溃。 漏洞起因是fs/binfmt_elf.c文件中的load_elf_binary()函数,该函数在检查ELF解释器可用之前调用了 SET_PERSONALITY(),将之前的32位进程转换为了64位进程。如果execve()成功,这不会导致问题,但在 SET_PERSONALITY()之后由于无法找到解释器,open_exec()调用会失败,execve()几乎立即返回错误。在/proc /PID/maps中错误的映射了vsyscall页,而进程仍在运行。这时就会触发分段错误,内核会崩溃。
<*References
http://marc.info/?l=linux-mm&m=126466407724382&q=p2*>
http://secunia.com/advisories/38354/
Exploit:
[www.sebug.net]
The following procedures (methods) may contain something offensive,they are only for security researches and teaching , at your own risk!
The following procedures (methods) may contain something offensive,they are only for security researches and teaching , at your own risk!
http://marc.info/?l=linux-mm&m=126466407724382&q=p5
SEBUG Solution:
厂商补丁: Linux ----- 目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载: http://www.kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.33-rc6.bz2
// sebug.net [2010-02-03]