|
Linux kernel setsockopt MCAST_MSFILTER整数溢出漏洞 (阅览
次)
漏洞整理: 小男
发布日期: 2004-05-01
更新日期: 2004-05-01
漏洞属性: 其他错误
漏洞类别: 权限提升
严重程度: 高
受影响系统:
Linux kernel setsockopt MCAST_MSFILTER --------------------------------------- Linux kernel 2.6.3 Linux kernel 2.6.2 Linux kernel 2.6.1 Linux kernel 2.4.25 Linux kernel 2.4.24 Linux kernel 2.4.23 Linux kernel 2.4.22
不影响系统:
Linux kernel 2.6.4 Linux kernel 2.4.26
漏洞描述:
Linux kernel setsockopt MCAST_MSFILTER整数溢出漏洞
Linux Kernel是一款开放源代码操作系统。
Linux Kernel包含的ip_setsockopt()存在整数溢出,本地攻击者可以利用这个漏洞提升权限,获得ROOT权限。
ip_setsockopt()函数是setsockopt(2)系统调用的子函数,这个函数允许操作多个IP套接口选项,MCAST_MSFILTER用于提供内核从套接口接收到的多播地址列表。在IP_MSFILTER_SIZE宏计算中处理MCAST_MSFILTER套接口选项的代码存在整数溢出。
攻击代码:
漏洞代码存在于net/ipv4/ip_sockglue.c文件中:
case MCAST_MSFILTER: { /* ... */ msize = IP_MSFILTER_SIZE(gsf->gf_numsrc); msf = (struct ip_msfilter *)kmalloc(msize,GFP_KERNEL); /* ... */ for (i=0; i<gsf->gf_numsrc; ++i) { psin = (struct sockaddr_in *)&gsf->gf_slist[i]; if (psin->sin_family != AF_INET) goto mc_msf_out; msf->imsf_slist[i] = psin->sin_addr.s_addr; }
whereas the IP_MSFILTER_SIZE macro is defined as follows:
#define IP_MSFILTER_SIZE(numsrc) \ (sizeof(struct ip_msfilter) - sizeof(__u32) \ + (numsrc) * sizeof(__u32))
安全建议:
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载Linux Kernel 2.4.26和2.6.4版本:
http://www.kernel.org/
========================= 文章类型:转载 提交:重新再来 核查:NetDemon
返回
|