发布日期:2010-03-31
更新日期:2010-04-08
受影响系统:
Linux kernel 2.6.x
不受影响系统:
Linux kernel 2.6.20
描述:
--------------------------------------------------------------------------------
CVE ID: CVE-2010-1188
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
-----
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载: