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

zhengkai00 2009-03-17

Linux Kernel是开放源码操作系统Linux所使用的内核,存在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位,而在这种情况下调用程序是用户空间,因此不能依赖符号扩展。

建议:

--------------------------------------------------------------------------------

厂商补丁:

Linux

-----

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

http://www.kernel.org/

相关推荐