首页 -> 安全研究

安全研究

安全漏洞
Linux Kernel多个本地MOXA串行驱动缓冲区溢出漏洞

发布日期:2005-01-07
更新日期:2005-01-13

受影响系统:
Linux kernel 2.6.9
Linux kernel 2.6.8
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.10
Linux kernel 2.6.1
Linux kernel 2.6
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.28
Linux kernel 2.4.27
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
描述:
BUGTRAQ  ID: 12195

Linux Kernel是一款开放源代码操作系统。

Linux Kernel的MOXA串口驱动不正确检查用户拷贝的数据,本地攻击者可以利用这个漏洞可能可以用于提升特权。

问题存在于'drivers/char/moxa.c'文件中,执行'copy_from_user()'函数时拷贝用户提供的用户空间数据到固定大小的10240字节的静态内核缓冲区(moxaBuff)中,不过由于利用由'MoxaDriverIoctl()'函数传递的用户提供的长度参数,可导致不正确的边界操作,触发本地缓冲区溢出。

<*来源:Brad Spengler (spender@grsecurity.net
  *>

建议:
厂商补丁:

Linux
-----
相关补丁:

--- drivers/char/moxa.c 2005-01-05 09:37:08 -0500
+++ drivers/char/moxa.c 2005-01-05 09:38:38 -0500
@@ -1668,6 +1668,8 @@
return -EFAULT;
if(dltmp.cardno < 0 || dltmp.cardno >= MAX_BOARDS)
return -EINVAL;
+ if(dltmp.len < 0 || dltmp.len > sizeof(moxaBuff))
+ return -EINVAL;

switch(cmd)
{
@@ -2822,8 +2824,6 @@
void __iomem *baseAddr;
int i;

- if(len > sizeof(moxaBuff))
- return -EINVAL;
if(copy_from_user(moxaBuff, tmp, len))
return -EFAULT;
baseAddr = moxaBaseAddr[cardno];

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