Linux Kernel ‘agp_allocate_memory/agp_create_user_memory’本地特权提升漏洞

 漏洞起因
边界条件错误
危险等级

 
影响系统
Linux kernel 2.6.39 rc4
 Linux kernel 2.6.38
 Linux kernel 2.6.37
 Linux kernel 2.6.37
 Linux kernel 2.6.36
 Linux kernel 2.6.35
 Linux kernel 2.6.35
 Linux kernel 2.6.35
 Linux kernel 2.6.34
 Linux kernel 2.6.34
 Linux kernel 2.6.33 .1
 Linux kernel 2.6.33
 Linux kernel 2.6.32 .9
 Linux kernel 2.6.32
 Linux kernel 2.6.31 5
 Linux kernel 2.6.31 13
 Linux kernel 2.6.31 .2
 Linux kernel 2.6.31 .11
 Linux kernel 2.6.31 -rc7
 Linux kernel 2.6.31 -rc6
 + Trustix Secure Enterprise Linux 2.0
 + Trustix Secure Linux 2.2
 + Trustix Secure Linux 2.1
 + Trustix Secure Linux 2.0
 Linux kernel 2.6.31 -rc3
 Linux kernel 2.6.31 -rc1
 Linux kernel 2.6.31
 Linux kernel 2.6.30 .10
 Linux kernel 2.6.30 .1
 Linux kernel 2.6.30 -rc6
 Linux kernel 2.6.30 -rc5
 Linux kernel 2.6.30 -rc3
 Linux kernel 2.6.30 -rc2
 Linux kernel 2.6.30 -rc1
 Linux kernel 2.6.30
 Linux kernel 2.6.29 .4
 Linux kernel 2.6.29 .1
 Linux kernel 2.6.29 -git8
 Linux kernel 2.6.29 -git14
 Linux kernel 2.6.29 -git1
 Linux kernel 2.6.29
 Linux kernel 2.6.28 .9
 Linux kernel 2.6.28 .8
 Linux kernel 2.6.28 .6
 Linux kernel 2.6.28 .5
 Linux kernel 2.6.28 .3
 Linux kernel 2.6.28 .2
 Linux kernel 2.6.28 .1
 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 12
 Linux kernel 2.6.27 .8
 Linux kernel 2.6.27 .5
 Linux kernel 2.6.27 .5
 Linux kernel 2.6.27 .46
 Linux kernel 2.6.27 .24
 Linux kernel 2.6.27 .14
 Linux kernel 2.6.27 .13
 Linux kernel 2.6.27 .12
 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 -rc4
 Linux kernel 2.6.27 -rc2
 Linux kernel 2.6.27 -rc1
 Linux kernel 2.6.27
 Linux kernel 2.6.26 7
 Linux kernel 2.6.26 .6
 Linux kernel 2.6.26 .4
 Linux kernel 2.6.26 .3
 Linux kernel 2.6.26 -rc6
 Linux kernel 2.6.26
 Linux kernel 2.6.25 .9
 Linux kernel 2.6.25 .8
 Linux kernel 2.6.25 .7
 Linux kernel 2.6.25 .6
 Linux kernel 2.6.25 .5
 Linux kernel 2.6.25 .13
 Linux kernel 2.6.25 .12
 Linux kernel 2.6.25 .11
 Linux kernel 2.6.25 .10
 Linux kernel 2.6.3 rc4
 Linux kernel 2.6.3 rc3
 Linux kernel 2.6.3 rc2
 Linux kernel 2.6.3 rc1
 Linux kernel 2.6.3
 Linux kernel 2.6.3
 Linux kernel 2.6.39-rc3
 Linux kernel 2.6.38.2
 Linux kernel 2.6.38-rc4
 Linux kernel 2.6.38-rc2
 Linux kernel 2.6.37rc
 Linux kernel 2.6.37-rc7
 Linux kernel 2.6.37-rc2
 Linux kernel 2.6.37-rc1
 Linux kernel 2.6.36.2 (stable)
 Linux kernel 2.6.36-rc8
 Linux kernel 2.6.36-rc6
 Linux kernel 2.6.36-rc5
 Linux kernel 2.6.36-rc4
 Linux kernel 2.6.36-rc1
 Linux kernel 2.6.35.5
 Linux kernel 2.6.35.4
 Linux kernel 2.6.35.1
 Linux kernel 2.6.35.1
 Linux kernel 2.6.35-rc6
 Linux kernel 2.6.35-rc5-git5
 Linux kernel 2.6.35-rc5
 Linux kernel 2.6.35-rc4
 Linux kernel 2.6.35-rc1
 Linux kernel 2.6.34.3
 Linux kernel 2.6.34.2
 Linux kernel 2.6.34.1
 Linux kernel 2.6.34-rc6
 Linux kernel 2.6.34-rc5
 Linux kernel 2.6.34-rc4
 Linux kernel 2.6.34-rc2-git1
 Linux kernel 2.6.34-rc2
 Linux kernel 2.6.34-rc1
 Linux kernel 2.6.33.7
 Linux kernel 2.6.33-rc8
 Linux kernel 2.6.33-rc7
 Linux kernel 2.6.33-rc7
 Linux kernel 2.6.33-rc6-git5
 Linux kernel 2.6.33-rc6
 Linux kernel 2.6.33-rc5
 + Trustix Secure Enterprise Linux 2.0
 + Trustix Secure Linux 2.2
 + Trustix Secure Linux 2.1
 + Trustix Secure Linux 2.0
 Linux kernel 2.6.33-rc4
 + Trustix Secure Enterprise Linux 2.0
 + Trustix Secure Linux 2.2
 + Trustix Secure Linux 2.1
 + Trustix Secure Linux 2.0
 Linux kernel 2.6.32.8
 Linux kernel 2.6.32.7
 Linux kernel 2.6.32.6
 Linux kernel 2.6.32.5
 Linux kernel 2.6.32.4
 Linux kernel 2.6.32.3
 Linux kernel 2.6.32.28
 Linux kernel 2.6.32.22
 Linux kernel 2.6.32.2
 Linux kernel 2.6.32.18
 Linux kernel 2.6.32.17
 Linux kernel 2.6.32.16
 Linux kernel 2.6.32.15
 Linux kernel 2.6.32.14
 Linux kernel 2.6.32.13
 Linux kernel 2.6.32.12
 Linux kernel 2.6.32.11
 Linux kernel 2.6.32.10
 Linux kernel 2.6.32.1
 Linux kernel 2.6.32-rc8
 Linux kernel 2.6.32-rc7
 Linux kernel 2.6.32-rc5
 Linux kernel 2.6.32-rc4
 Linux kernel 2.6.32-rc3
 Linux kernel 2.6.32-rc2
 Linux kernel 2.6.32-rc1
 Linux kernel 2.6.31.6
 Linux kernel 2.6.31.4
 Linux kernel 2.6.31.1
 + Trustix Secure Linux 2.0
 Linux kernel 2.6.31-rc9
 Linux kernel 2.6.31-rc8
 + Trustix Secure Enterprise Linux 2.0
 + Trustix Secure Linux 2.2
 + Trustix Secure Linux 2.1
 + Trustix Secure Linux 2.0
 Linux kernel 2.6.31-rc5-git3
 Linux kernel 2.6.31-rc4
 Linux kernel 2.6.31-rc2
 Linux kernel 2.6.31-git11
 + Trustix Secure Enterprise Linux 2.0
 + Trustix Secure Linux 2.2
 + Trustix Secure Linux 2.1
 + Trustix Secure Linux 2.0
 Linux kernel 2.6.30.5
 Linux kernel 2.6.30.4
 Linux kernel 2.6.30.3
 Linux kernel 2.6.29-rc2-git1
 Linux kernel 2.6.29-rc2
 Linux kernel 2.6.29-rc1
 Linux kernel 2.6.28.4
 Linux kernel 2.6.28.10
 Linux kernel 2.6.28-rc7
 Linux kernel 2.6.28-rc6
 Linux kernel 2.6.28-rc5
 Linux kernel 2.6.28-rc5
 Linux kernel 2.6.28-rc4
 Linux kernel 2.6.27.54
 Linux kernel 2.6.27.51
 Linux kernel 2.6.27.49
 Linux kernel 2.6.27.26
 Linux kernel 2.6.27-git3
 Linux kernel 2.6.26.1
 Linux kernel 2.6.26-rc5-git1
 Linux kernel 2.6.25.4
 Linux kernel 2.6.25.3
 Linux kernel 2.6.25.2
 Linux kernel 2.6.25.1
 Linux kernel 2.6.25-rc1
 
 
不受影响系统
 
危害
本地攻击者可以利用漏洞使系统崩溃。
 
攻击所需条件
攻击者必须访问Linux。
 
漏洞信息
Linux是一款开放源代码的操作系统。
page_count拷贝自用户空间,agp_allocate_memory()会尝试检查此数是否过大,但没有进行封装转换处理,而agp_create_user_memory()没有检查num_agp_pages变量计算出的alloc_size是否会溢出。
agp代码的另一个问题没有在内核内存耗竭(AGPIOC_RESERVE和AGPIOC_ALLOCATE ioctls)补丁上得到修补。由于没有检查请求的pid是否为调用者的pid(在agpioc_reserve_wrap()中没有检查),每个分配限制为16KB,但没有对每个进程进行限制,这可导致触发OOM。
 
测试方法
 
厂商解决方案
用户可参考如下供应商提供的安全公告获得补丁信息:
https://lkml.org/lkml/2011/4/14/294
 
漏洞提供者
Vasiliy Kulikov
  
 
漏洞消息链接
https://lkml.org/lkml/2011/4/14/294

发表评论?

0 条评论。

发表评论