首页 -> 安全研究

安全研究

安全漏洞
Linux Kernel nfs4_proc_lock()本地拒绝服务漏洞

发布日期:2009-11-05
更新日期:2009-11-06

受影响系统:
Linux kernel 2.6.x
不受影响系统:
Linux kernel 2.6.31-rc4
描述:
BUGTRAQ  ID: 36936
CVE(CAN) 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
        http://permalink.gmane.org/gmane.comp.security.oss.general/2283
        http://www.spinics.net/linux/lists/linux-nfs/msg03357.html
        https://www.redhat.com/support/errata/RHSA-2009-1635.html
        https://www.redhat.com/support/errata/RHSA-2009-1670.html
*>

测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

https://bugzilla.redhat.com/attachment.cgi?id=367124

建议:
厂商补丁:

Linux
-----
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

http://git.kernel.org/linus/d953126a28f97ec965d23c69fd5795854c048f30

RedHat
------
RedHat已经为此发布了一个安全公告(RHSA-2009:1635-01)以及相应补丁:
RHSA-2009:1635-01:Important: kernel-rt security, bug fix, and enhancement update
链接:https://www.redhat.com/support/errata/RHSA-2009-1635.html

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