安全研究

安全漏洞
Linux unix_dgram_recvmsg()竞争条件特权提升漏洞

发布日期:2004-11-19
更新日期:2004-11-22

受影响系统:
Linux kernel 2.4.9
Linux kernel 2.4.8
Linux kernel 2.4.7
Linux kernel 2.4.6
Linux kernel 2.4.5
Linux kernel 2.4.4
Linux kernel 2.4.3
Linux kernel 2.4.27
Linux kernel 2.4.26
Linux kernel 2.4.25
Linux kernel 2.4.24
Linux kernel 2.4.23
Linux kernel 2.4.22
Linux kernel 2.4.21
Linux kernel 2.4.20
Linux kernel 2.4.2
Linux kernel 2.4.19
Linux kernel 2.4.18
Linux kernel 2.4.17
Linux kernel 2.4.16
Linux kernel 2.4.15
Linux kernel 2.4.14
Linux kernel 2.4.13
Linux kernel 2.4.12
Linux kernel 2.4.11
Linux kernel 2.4.10
Linux kernel 2.4.1
Linux kernel 2.4
不受影响系统:
Linux kernel 2.4.28
描述:
Linux kernel是一款开放源代码操作系统。

Linux内核unix_dgram_recvmsg()函数没有对信号量进行序列化操作,本地攻击者可以利用这个漏洞通过竞争条件来提升特权。

攻击者必须使kmalloc()在特殊分配的内存块上进行sleep操作,然后诱使调度程序执行其他线程来利用这个漏洞,因此利用此漏洞比较困难,但却是可行的操作。

<*来源:Paul Starzetz (paul@starzetz.de
  
  链接:http://marc.theaimsgroup.com/?l=bugtraq&m=110091183206580&w=2
*>

建议:
厂商补丁:

Linux
-----
升级到linux kernel 2.4.28:

http://kernel.org

或者采用如下补丁:

# This is a BitKeeper generated diff -Nru style patch.
#
# ChangeSet
#   2004/11/15 14:04:37-08:00 davem@nuts.davemloft.net
#   [AF_UNIX]: Serialize dgram read using semaphore just like stream.
#  
#   Signed-off-by: David S. Miller <davem@davemloft.net>
#
# net/unix/af_unix.c
#   2004/11/15 14:03:52-08:00 davem@nuts.davemloft.net +5 -1
#   [AF_UNIX]: Serialize dgram read using semaphore just like stream.
#
diff -Nru a/net/unix/af_unix.c b/net/unix/af_unix.c
--- a/net/unix/af_unix.c    2004-11-15 20:08:31 -08:00
+++ b/net/unix/af_unix.c    2004-11-15 20:08:31 -08:00
@@ -1535,9 +1535,11 @@

    msg->msg_namelen = 0;

+    down(&u->readsem);
+
    skb = skb_recv_datagram(sk, flags, noblock, &err);
    if (!skb)
-        goto out;
+        goto out_unlock;

    wake_up_interruptible(&u->peer_wait);

@@ -1587,6 +1589,8 @@

out_free:
    skb_free_datagram(sk,skb);
+out_unlock:
+    up(&u->readsem);
out:
    return err;
}

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