Linux Kernel net/ipv4/tcp_input.c文件释放后使用漏洞

受影响系统:

Linux kernel 2.6.x

不受影响系统:

Linux kernel 2.6.20

描述:
Linux Kernel是开放源码操作系统Linux所使用的内核

Linux Kernel的net/ipv4/tcp_input.c文件中存在释放后使用漏洞。在对监听套接字设置IPV6_RECVPKTINFO时,这个漏洞允许攻击者在套接字仍处于监听状态(TCP_LISTEN)期间发送SYN报文导致内核忙碌。

漏洞的起因是tcp_rcv_state_process()中强行释放了skb。当处于TCP_LISTEN状态的套接字接收到了syn报文,就会从tcp_rcv_state_process()调用tcp_v6_conn_request()。如果tcp_v6_conn_request()成功的返回,__kfree_skb()会抛弃skb。但对于设置了IPV6_RECVPKTINFO的监听套接字,skb的地址会存储在treq->pktopts中,tcp_v6_conn_request()中会递增skb的引用计数器。即使skb仍在使用中也会被释放,之后使用已释放skb的用户会导致内核忙碌。

<*来源:Eugene Teo (eugeneteo@eugeneteo.net
  
  链接:
https://bugzilla.redhat.com/show_bug.cgi?format=multiple&id=577711
*>

建议:

厂商补丁:

Linux
—–
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

http://git.kernel.org/linus/fb7e2399ec17f1004c0e0ccfd17439f8759ede01

发表评论?

0 条评论。

发表评论