| 关键词: nbsp Linux 符号 系统 参数 程序 kernel 寄存器 厂商 用户 |
受影响系统: 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/ |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|