Linux Kernel I2C驱动另一个整数溢出漏洞
涉及程序:
Linux Kernel I2C
描述:
Linux Kernel I2C驱动另一个整数溢出漏洞
详细:
Linux是一款开放源代码操作系统。Linux中的I2C总线驱动程序不正确验证用户提供的Size值,本地攻击者可以利用这个漏洞获得ring 0级别的权限。
问题存在于i2cdev_ioctl()函数中的I2C_RDWR选项:
---
case I2C_RDWR:
if (copy_from_user(&rdwr_arg,
(struct
i2c_rdwr_ioctl_data *)arg,
sizeof(rdwr_arg)))
return -EFAULT;
rdwr_pa = (struct i2c_msg *)
kmalloc(rdwr_arg.nmsgs *
sizeof(struct i2c_msg),
GFP_KERNEL);
if (rdwr_pa == NULL) return -ENOMEM;
---
由于缺少过滤检查,在kmalloc()调用中使用的(rdwr_arg.nmsgs * sizeof(struct i2c_msg))会导致触发整数溢出。
如果用户提供一个超大的整数用于kmalloc()调用中的长度参数,会由于分配过小的内存而使kmalloc()发生整数溢出,可导致系统崩溃等问题。
不过多数情况下I2C驱动文件默认只允许管理员可读和写,因此攻击者一般需要ROOT的权限来利用此漏洞。
<*来源:Shaun Colley (shaunige@yahoo.co.uk)
受影响系统:
Linux kernel 2.5.9
Linux kernel 2.5.8
Linux kernel 2.5.7
Linux kernel 2.5.69
Linux kernel 2.5.68
Linux kernel 2.5.67
Linux kernel 2.5.66
Linux kernel 2.5.65
Linux kernel 2.5.64
Linux kernel 2.5.63
Linux kernel 2.5.62
Linux kernel 2.5.61
Linux kernel 2.5.60
Linux kernel 2.5.6
Linux kernel 2.5.59
Linux kernel 2.5.58
Linux kernel 2.5.57
Linux kernel 2.5.56
Linux kernel 2.5.55
Linux kernel 2.5.54
Linux kernel 2.5.53
Linux kernel 2.5.52
Linux kernel 2.5.51
Linux kernel 2.5.50
Linux kernel 2.5.5
Linux kernel 2.5.49
Linux kernel 2.5.48
Linux kernel 2.5.47
Linux kernel 2.5.46
Linux kernel 2.5.45
Linux kernel 2.5.44
Linux kernel 2.5.43
Linux kernel 2.5.42
Linux kernel 2.5.41
Linux kernel 2.5.40
Linux kernel 2.5.4
Linux kernel 2.5.39
Linux kernel 2.5.38
Linux kernel 2.5.37
Linux kernel 2.5.36
Linux kernel 2.5.35
Linux kernel 2.5.34
Linux kernel 2.5.33
Linux kernel 2.5.32
Linux kernel 2.5.31
Linux kernel 2.5.31
Linux kernel 2.5.30
Linux kernel 2.5.3
Linux kernel 2.5.29
Linux kernel 2.5.28
Linux kernel 2.5.27
Linux kernel 2.5.26
Linux kernel 2.5.25
Linux kernel 2.5.24
Linux kernel 2.5.23
Linux kernel 2.5.22
Linux kernel 2.5.21
Linux kernel 2.5.20
Linux kernel 2.5.2
Linux kernel 2.5.19
Linux kernel 2.5.17
Linux kernel 2.5.16
Linux kernel 2.5.15
Linux kernel 2.5.14
Linux kernel 2.5.13
Linux kernel 2.5.12
Linux kernel 2.5.11
Linux kernel 2.5.10
Linux kernel 2.5.1
Linux kernel 2.5.0
Linux kernel 2.4.9
Linux kernel 2.4.8
Linux kernel 2.4.7
Linux kernel 2.4.6
Linux kernel 2.4.5
Linux kernel 2.4.4
Linux kernel 2.4.3
Linux kernel 2.4.20
Linux kernel 2.4.2
Linux kernel 2.4.19
Linux kernel 2.4.17
Linux kernel 2.4.16
Linux kernel 2.4.15
Linux kernel 2.4.14
Linux kernel 2.4.13
Linux kernel 2.4.12
Linux kernel 2.4.11
Linux kernel 2.4.10
Linux kernel 2.4.1
Linux kernel 2.4
Linux kernel 2.4.18
- Debian Linux 3.0
- Mandrake Linux 8.2
- Mandrake Linux 8.1
- Mandrake Linux 8.0
- RedHat Linux 8.0
- RedHat Linux 7.3
- SuSE Linux 8.2
- SuSE Linux 8.1
- SuSE Linux 8.0
- SuSE Linux 7.3
- SuSE Linux 7.2
- SuSE Linux 7.1
- Turbo Linux 7.0
不受影响系统:
Linux kernel 2.6.7
Linux kernel 2.6.6
Linux kernel 2.6.5
Linux kernel 2.6.4
Linux kernel 2.6.3
Linux kernel 2.6.2
Linux kernel 2.6.1-rc2
Linux kernel 2.6.1-rc1
Linux kernel 2.6.1
Linux kernel 2.6
Linux kernel 2.4.27-pre2
Linux kernel 2.4.27-pre1
Linux kernel 2.4.26
Linux kernel 2.4.25
Linux kernel 2.4.24
Linux kernel 2.4.23
Linux kernel 2.4.22
Linux kernel 2.4.21 pre7
Linux kernel 2.4.21 pre4
Linux kernel 2.4.21 pre1
Linux kernel 2.4.21
攻击方法:
暂无有效攻击代码
解决方案:
Linux
-----
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
Linux Upgrade linux-2.4.21.tar.bz2
http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.21.tar.bz2
Linux Upgrade linux-2.4.22.tar.gz
ftp://ftp.kernel.org/pub/linux/kernel/v2.4/linux-2.4.22.tar.gz
Linux Upgrade linux-2.4.23.tar.gz
ftp://ftp.kernel.org/pub/linux/kernel/v2.4/linux-2.4.23.tar.gz
Linux Upgrade linux-2.4.24.tar.bz2
http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.24.tar.bz2
Linux Upgrade linux-2.4.25.tar.bz2
http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.25.tar.bz2
Linux Upgrade linux-2.4.26.tar.bz2
http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.26.tar.bz2
附加信息:
BUGTRAQ ID: 10563