Linux Kernel ‘agp_ioctl()’特权提升漏洞

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

 
影响系统
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是一款开放源代码的操作系统。
pg_start拷贝自用户空间的agp_ioctl()中的AGPIOC_BIND和AGPIOC_UNBIND ioctl cmds并传递给agpioc_bind_wrap()。根据评注中描述在AGPIOC_BIND情况下(pg_start + mem->page_count)会封装转换,而在AGPIOC_UNBIND情况下没有进行正确检查,结果可导致非特权用户写任意内核内存而(一般是"video"组)触发本地拒绝服务或提权提升。
 
测试方法
 
厂商解决方案
用户可参考如下供应商提供的安全公告获得补丁信息:
https://lkml.org/lkml/2011/4/14/293
 
漏洞提供者
Vasiliy Kulikov
  
 
漏洞消息链接
https://lkml.org/lkml/2011/4/14/293