安全研究

安全漏洞
Linux Kernel I2C驱动另一个整数溢出漏洞

发布日期:2004-06-17
更新日期:2004-06-24

受影响系统:
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
描述:
BUGTRAQ  ID: 10563

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
  
  链接:http://marc.theaimsgroup.com/?l=bugtraq&m=108761485905678&w=2
*>

建议:
厂商补丁:

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

浏览次数:2904
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障