关于我们 | 加入我们 | 网站结构 | 交换连接 | 联系我们
| 最新文档 | 技术文摘 | 安全漏洞 | 菜鸟乐园 | 黑客进阶 | 技术文库 | 软件下载 | 技术论坛 |
 您现在的位置 >> 返回首页 文档发表时间:2004-05-02

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

返回

建议您使用IE浏览器800×600以上分辩率浏览以获最佳效果

20CN网络安全小组版权所有
Copyright © 2000-2006 20CN Network Security Group. All Rights Reserved.
如有任何问题及建议请写信至 webmaster@20cn.net