Linux kernel setsockopt MCAST_MSFILTER整数溢出漏洞
发布日期:2004-04-20
更新日期:2004-04-23
受影响系统: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
描述:
CVE(CAN) ID:
CVE-2004-0424
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))
利用这个溢出,本地攻击者可以获得root用户权限。
<*来源:Paul Starzetz (
paul@starzetz.de)
链接:
http://marc.theaimsgroup.com/?l=bugtraq&m=108253171301153&w=2
*>
建议:
厂商补丁:
Linux
-----
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载Linux Kernel 2.4.26和2.6.4版本:
http://www.kernel.org/浏览次数:3676
严重程度:0(网友投票)