墨者在线>墨者资讯>> 正文

Linux内核Linux Kernel isdn_net.c存在溢出漏洞

2008-06-04 09:58:28  作者:墨者在线  来源:赛迪网  关键字: Linux漏洞

        开源操作系统Linux内核Linux Kernel实现上存在本地溢出漏洞,此漏洞存在于drivers/isdn/i4l/isdn_net.c文件中的isdn_net_setcfg()函数在处理发送给ISDN伪设备(/dev/isdnctrl)的IOCTL配置请求时。
    
    更新日期:2007-12-03
    
    受影响系统:
    
    Linux kernel 2.6.23
    
    描述:
    
    BUGTRAQ ID: 26605
    
    CVE(CAN) ID: CVE-2007-6063
    
    Linux Kernel是开放源码操作系统Linux所使用的内核。
    
    Linux Kernel实现上存在漏洞,本地攻击者可能利用此漏洞提升权限。
    
    Linux Kernel的drivers/isdn/i4l/isdn_net.c文件中的isdn_net_setcfg()函数在处理发送给ISDN伪设备(/dev/isdnctrl)的IOCTL配置请求时存在缓冲区溢出漏洞:
    
    isdn_ioctl (drivers/isdn/i4l/isdn_common.c):
    
    1270 isdn_ioctl(struct inode *inode, struct file *file, uint cmd, ulong arg)
    
    ...
    
    ...
    
    1410 case IIOCNETSCF:
    
    1411
    
    1412 if (arg) {
    
    1413 if (copy_from_user(cfg, argp, sizeof(cfg))) *** <- cfg is user-controlled
    
    1414 return -EFAULT;
    
    1415 return isdn_net_setcfg(cfg); *** <-call isdn_net_setcfg()
    
    1416 } else
    
    1417 return -EINVAL;
    
    ...
    
    在1413行,cfg是从用户空间读取的,因此受用户控制。在1415行调用了isdn_net_setcfg()函数,cfg作为参数传送给了isdn_net_setcfg()。
    
    isdn_net_setcfg (drivers/isdn/i41/isdn_net.c):
    
    2664 isdn_net_setcfg(isdn_net_ioctl_cfg * cfg)
    
    2665 {
    
    ...
    
    2777 if (cfg->exclusive > 0) {
    
    2778 unsigned long flags;
    
    2779
    
    2780
    
    2781 spin_lock_irqsave(dev->lock, flags);
    
    2782 if ((i = isdn_get_free_channel(ISDN_USAGE_NET,
    
    2783 lp->l2_proto, lp->l3_proto, drvidx,
    
    2784 chidx, lp->msn)) < 0) {
    
    2785
    2786 lp->exclusive = -1;
    
    2787 spin_unlock_irqrestore(dev->lock, flags);
    
    2788 return -EBUSY;
    
    2789 }

 

快速下载

永久免费 小巧安全

下载墨者安全专家

软件版本:v 3.28 正式版

文件大小:3.7 MB

更新时间:2008.7.24

系统要求:windowsXP

每日病毒播报

客服中心