Linux Kernel i2c整数溢出漏洞

2008-04-09 04:26:01来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

Linux Kernel i2c整数溢出漏洞

发布日期:2004-06-16
更新日期:2004-06-18

受影响系统:
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.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
Linux kernel 2.4.20
Linux kernel 2.4.2
Linux kernel 2.4.19
Linux kernel 2.4.18
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是一款开放源代码操作系统。

Linux包含的'i2c'驱动存在整数溢出问题,本地攻击者可以利用这个漏洞提升权限。

问题存在于i2c-core.c的i2cproc_bus_read()函数中:

--- vuln code ---
ssize_t i2cproc_bus_read(struct file * file, char *
buf,size_t count,
loff_t *ppos)
{
struct inode * inode =
file->f_dentry->d_inode;
char *kbuf;
struct i2c_client *client;
int i,j,k,order_nr,len=0;
size_t len_total;
int order[I2C_CLIENT_MAX];

if (count > 4000)
return -EINVAL;
len_total = file->f_pos count;
/* Too bad if this gets longer (unlikely) */
if (len_total > 4000)
len_total = 4000;
for (i = 0; i < I2C_ADAP_MAX; i )
if (adapters[i]->inode ==
inode->i_ino) {
/* We need a bit of slack in the
kernel buffer; this makes the
sprintf safe. */
if (! (kbuf = kmalloc(count
80,GFP_KERNEL)))
return -ENOMEM;

[...]

虽然对用户提供的变量'count'进行了安全检查,如不超过4000,但对其为负值没有进行处理,因此负的count参数可导致kmalloc()发生整数溢出,本地攻击者可以利用这个漏洞提升权限。

<*来源:shaun2k2 (shaunige@yahoo.co.uk)

链接:http://marc.theaimsgroup.com/?l=bugtraq&m=108742766813862&w=2
*>

建议:
临时解决方法:

如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:

* 在i2c-core.c文件中的i2cproc_bus_read()开始处增加如下检查:

---
if(count < 0)
return -EINVAL;
---

然后重建内核。

厂商补丁:

Linux
-----
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://www.kernel.org/

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:BEA WebLogic Server/WebLogic Express远程拒绝服务漏洞

下一篇:Horde Chora Viewer远程命令执行漏洞