发布日期:2009-11-05
更新日期:2009-11-06
受影响系统:
Linux kernel 2.6.x
不受影响系统:
Linux kernel 2.6.31-rc4
描述:
--------------------------------------------------------------------------------
BUGTRAQ ID: 36936
CVE ID: CVE-2009-3726
Linux Kernel是开放源码操作系统Linux所使用的内核。
Linux Kernel的nfs4_proc_lock()函数中存在空指针引用漏洞,在_nfs4_proc_setlk函数的开始处:
static int _nfs4_proc_setlk(struct nfs4_state *state, int cmd, struct
file_lock *request)
{
struct nfs_client *clp = state->owner->so_client;
试图引用state->owner会导致崩溃。反汇编显示state已经为空:
fbf: ab stos %eax,%es:(%rdi)
fc0: ab stos %eax,%es:(%rdi)
fc1: ab stos %eax,%es:(%rdi)
fc2: 49 8b 45 30 mov 0x30(%r13),%rax <== oops here
fc6: 4c 89 e6 mov %r12,%rsi
fc9: 4c 89 ef mov %r13,%rdi
也就是说从nfs4_proc_lock传送给nfs4_proc_setlk的state变量为空。
<*来源:Grigoriy A. Sitkare
链接:https://bugzilla.redhat.com/show_bug.cgi?format=multiple&id=529227
*>
测试方法:
--------------------------------------------------------------------------------
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
https://bugzilla.redhat.com/attachment.cgi?id=367124
建议:
--------------------------------------------------------------------------------
厂商补丁:
Linux
-----
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载: