Linux Kernel 64位ABI系统调用参数权限提升漏洞

来源:岁月联盟 编辑:zhuzhu 时间:2009-02-04
Linux Kernel 64位ABI系统调用参数权限提升漏洞 受影响系统:
Linux kernel 2.6.x
描述:
--------------------------------------------------------------------------------
BUGTRAQ  ID: 33275
CVE(CAN) ID: CVE-2009-0029

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

Linux Kernel没有确保某些32位参数执行了正确的符号扩展便接受了用户空间的64位寄存器所传送的32位参数,如果向有漏洞的系统调用传送了特制参数便可以导致系统崩溃或获得权限提升。

某些架构的ABI定义函数的调用程序必须将每个参数符号扩展为完整的寄存器宽度,这在Linux系统调用处理中可能导致问题,例如64位系统上的以下调用:

asmlinkage long sys_example(unsigned int index)
{
        if (index > 5)
                return -EINVAL;
        return example_array[index];
}

调用程序必须将索引符号扩展为64位,而在这种情况下调用程序是用户空间,因此不能依赖符号扩展。

<*来源:Christian Borntraeger
  
  链接:https://bugzilla.redhat.com/show_bug.cgi?format=multiple&id=479969
        http://marc.info/?l=linux-kernel&m=123155111608910&w=2
*>

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

Linux
-----
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://www.kernel.org/

图片内容