漏洞信息详情
Linux Kernel 缓冲区溢出漏洞
- CNNVD编号:CNNVD-200503-096
- 危害等级: 中危
- CVE编号:
CVE-2005-0504
- 漏洞类型:
缓冲区溢出
- 发布时间:
2005-01-07
- 威胁类型:
本地
- 更新时间:
2007-05-16
- 厂 商:
linux - 漏洞来源:
grsecurity -
漏洞简介
Linux Kernel是开放源代码操作系统Linux的内核。
Linux Kernel moxa驱动MoxaDriverIoctl函数存在缓冲区溢出,本地攻击者可以利用这个漏洞提升特权。
问题存在于如下代码drivers/char/moxa.c:
In MoxaDriverIoctl():
> if(copy_from_user( &dltmp, argp, sizeof(struct dl_str)))
> return -EFAULT;
^ dltmp.len 是由用户控制
> if(dltmp.cardno < 0 || dltmp.cardno >= MAX_BOARDS)
> return -EINVAL;
>
> switch(cmd)
> {> case MOXA_LOAD_BIOS:
> i = moxaloadbios(dltmp.cardno, dltmp.buf, dltmp.len);
^ 调用时没有任何长度检查
> return (i);
> case MOXA_FIND_BOARD:
> return moxafindcard(dltmp.cardno);
> case MOXA_LOAD_C320B:
> moxaload320b(dltmp.cardno, dltmp.buf, dltmp.len);
^ 调用时没有任何长度检查
> default: /* to keep gcc happy */
> return (0);
> case MOXA_LOAD_CODE:
> i = moxaloadcode(dltmp.cardno, dltmp.buf, dltmp.len);
^ 调用时没有任何长度检查
在 moxaloadbios()中:
>static int moxaloadbios(int cardno, unsigned char __user *tmp, int len)
>{
> void __iomem *baseAddr;
> int i;
>
> if(copy_from_user(moxaBuff, tmp, len))
^ copy_from_user没有进行任何长度检查
> return -EFAULT;
在 moxaloadcode()中:
> static int moxaloadcode(int cardno, unsigned char __user *tmp, int len)
> {
> void __iomem *baseAddr, *ofsAddr;
> int retval, port, i;
>
> if(copy_from_user(moxaBuff, tmp, len))
^ copy_from_user没有进行任何长度检查
> return -EFAULT;
In moxaload320b():
>static int moxaload320b(int cardno, unsigned char __user *tmp, int len)
>{
> void __iomem *baseAddr;
> int i;
>
> if(len > sizeof(moxaBuff))
^ signed int只有一个上界检查
> return -EINVAL;
> if(copy_from_user(moxaBuff, tmp, len))
^ copy_from_user的len可能大于sizeof(moxaBuff)
> return -EFAULT;
攻击者可以控制长度值造成缓冲区溢出,精心构建提交数据可能以提升特权。
漏洞公告
厂商补丁:
Linux
—–
grsecurity linux 2.1.0已经修正此问题:
http://grsecurity.net/~spender/exploits_and_patches.tgz” target=”_blank”>
http://grsecurity.net/~spender/exploits_and_patches.tgz
参考网址
来源: BID
名称: 12195
链接:http://www.securityfocus.com/bid/12195
来源: UBUNTU
名称: USN-508-1
链接:http://www.ubuntu.com/usn/usn-508-1
来源: REDHAT
名称: RHSA-2005:663
链接:http://www.redhat.com/support/errata/RHSA-2005-663.html
来源: REDHAT
名称: RHSA-2005:551
链接:http://www.redhat.com/support/errata/RHSA-2005-551.html
来源: REDHAT
名称: RHSA-2005:529
链接:http://www.redhat.com/support/errata/RHSA-2005-529.html
来源: VUPEN
名称: ADV-2005-1878
链接:http://www.frsirt.com/english/advisories/2005/1878
来源: DEBIAN
名称: DSA-1082
链接:http://www.debian.org/security/2006/dsa-1082
来源: DEBIAN
名称: DSA-1070
链接:http://www.debian.org/security/2006/dsa-1070
来源: DEBIAN
名称: DSA-1069
链接:http://www.debian.org/security/2006/dsa-1069
来源: DEBIAN
名称: DSA-1067
链接:http://www.debian.org/security/2006/dsa-1067
来源: SECTRACK
名称: 1013273
链接:http://securitytracker.com/id?1013273
来源: SECUNIA
名称: 30112
链接:http://secunia.com/advisories/30112
来源: SECUNIA
名称: 26651
链接:http://secunia.com/advisories/26651
来源: SECUNIA
名称: 20338
链接:http://secunia.com/advisories/20338
来源: SECUNIA
名称: 20202
链接:http://secunia.com/advisories/20202
来源: SECUNIA
名称: 20163
链接:http://secunia.com/advisories/20163
来源: SECUNIA
名称: 17002
链接:http://secunia.com/advisories/17002
来源: FULLDISC
名称: 20050107 grsecurity 2.1.0 release / 5 Linux kernel advisories
链接:http://lists.grok.org.uk/pipermail/full-disclosure/2005-January/030660.html
来源: kernel.org
链接:http://kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.22
来源: REDHAT
名称: RHSA-2008:0237
链接:http://www.redhat.com/support/errata/RHSA-2008-0237.html