IPTables和Netfilter是Linux kernel下的防火墙构架实现。 IP队列需要高权限进程与用户空间通信来处理本地主机上的网络通信队列,由于不充分检查特权进程的完整性,本地攻击者可以利用这个漏洞获得高权限进程的网络通信部分信息。 在Linux2.4和2.5中,IP包队列功能是作为Netfilter/IPTalbes试验性的功能,可以允许用户空间调裁(mediation)和修改IPV4和IPV6数据包。 用户空间调裁进程需要高权限(NET_ADMIN)处理来自内核的数据包,在开始调裁数据包时,用户空间进程一般会发送Netlink消息给相关的内核模块,特别是队列参数,内核模块捕获UNIX进程ID以确保队列的可靠性和在递送数据包。 如果高权限调裁进程存在,未授权进程可以重用相同PID而获得网络通信信息。如果在已经存在的高权限进程和已经确立的一般权限进程之间没有网络通信排列,就会发生这个问题。 在未得确认的情况下,从内核空间向用户空间只能传送有限的数据包,因为所有从用户空间向内核空间的数据传送需要NET_ADMIN权限,所以非特权进程无法发送确认数据包。因此,未授权进程能读的最大数据包数量由队列长度限制(默认是1024数据包)。非特权进程也只能读取由特权进程选择给IPTables队列的数据包。
IPTables和Netfilter是Linux kernel下的防火墙构架实现。 IP队列需要高权限进程与用户空间通信来处理本地主机上的网络通信队列,由于不充分检查特权进程的完整性,本地攻击者可以利用这个漏洞获得高权限进程的网络通信部分信息。 在Linux2.4和2.5中,IP包队列功能是作为Netfilter/IPTalbes试验性的功能,可以允许用户空间调裁(mediation)和修改IPV4和IPV6数据包。 用户空间调裁进程需要高权限(NET_ADMIN)处理来自内核的数据包,在开始调裁数据包时,用户空间进程一般会发送Netlink消息给相关的内核模块,特别是队列参数,内核模块捕获UNIX进程ID以确保队列的可靠性和在递送数据包。 如果高权限调裁进程存在,未授权进程可以重用相同PID而获得网络通信信息。如果在已经存在的高权限进程和已经确立的一般权限进程之间没有网络通信排列,就会发生这个问题。 在未得确认的情况下,从内核空间向用户空间只能传送有限的数据包,因为所有从用户空间向内核空间的数据传送需要NET_ADMIN权限,所以非特权进程无法发送确认数据包。因此,未授权进程能读的最大数据包数量由队列长度限制(默认是1024数据包)。非特权进程也只能读取由特权进程选择给IPTables队列的数据包。