Linux Kernel RDS协议本地权限提升漏洞


发布日期:2010-10-19
更新日期:2010-10-20

受影响系统:
Linux kernel <= 2.6.36-rc8
描述:
--------------------------------------------------------------------------------
BUGTRAQ  ID: 44219
CVE ID: CVE-2010-3904

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

在Linux上,使用了iovec结构执行recvmsg()样式套接字调用以允许用户指定用于接收套接字数据的缓冲区基址和大小。每个报文家族负责定义拷贝套接字数据的函数,内核接收到这些数据后返回给用户空间以便用户程序处理所接收到的网络数据。

在将数据拷贝到用户空间时,RDS协议没有确认用户所提供iovec结构的基址指向了有效的用户空间地址便使用__copy_to_user_inatomic()函数拷贝数据。因此,如果提供内核地址为iovec基址并发布recvmsg()样式套接字调用,本地用户就可以向内核内存中写入任意数据,导致root用户权限提升。

<*来源:Dan Rosenberg
 
  链接:http://marc.info/?l=bugtraq&m=128752033128281&w=2
*>

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

警 告

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

http://www.exploit-db.com/download/15285

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

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

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=799c10559d60f159ab2232203f222f18fa3c4a5f

相关内容