Linux Kernel 64 Bit ABI系统调用参数特权提升漏洞

- AV AC AU C I A
发布: 2025-04-13
修订: 2025-04-13

BUGTRAQ ID: 33275 CVE ID:CVE-2009-0029 Linux是一款开放源代码的操作系统。 Linux内核64位ABI系统调用参数处理存在问题,本地攻击者可以利用漏洞提升特权。 部分结构的ABI定义函数调用者必须对每个参数进行符号扩展来填满寄存器宽度,在linux系统调用处理上存在问题。 如在64位上使用这个系统调用: asmlinkage long sys_example(unsigned int index) { if (index > 5) return -EINVAL; return example_array[index]; } 这意味着调用者必须对索引index进行符号扩展到64位,在这种情况下,调用者是处于用户控件,因此我们不能依靠正确的符号扩展。 但实际上只传递用户控制提送的参数修改系统调用函数。 如上例子可通过如下方法突破: 编译器创建代码会只测试寄存器中的底32位,确保其包含的索引值<= 5,但是访问内存位置获得数组外的值可使用相同未修改(64位)寄存器作为索引寄存器,因为调用者必须确保寄存器的高32位包含零。但是因为值来自用户空间,因此不能保证其正确性,可导致地址异常,或用户空间读取或从不允许访问的内存位置中写入写出。 Linux kernel 2.6.28 -rc7 Linux kernel 2.6.28 -rc5 Linux kernel 2.6.28 -rc1 Linux kernel 2.6.28 -git7 Linux kernel 2.6.28 Linux kernel 2.6.27 6 Linux kernel 2.6.27 3 Linux kernel 2.6.27 .8 Linux kernel 2.6.27 .5 Linux kernel 2.6.27 .5 Linux kernel 2.6.27 -rc8-git5 Linux kernel 2.6.27 -rc8 Linux kernel 2.6.27 -rc6-git6 Linux kernel 2.6.27 -rc6 Linux kernel 2.6.27 -rc5 Linux kernel 2.6.27 -rc2 Linux kernel 2.6.27 -rc1 Linux kernel 2.6.27 Linux...

0%
暂无可用Exp或PoC
当前有0条受影响产品信息