Linux Kernel IPTables符号错误远程拒绝服务漏洞
发布日期: 2004年7月5日
受影响系统:
Linux kernel 2.6.7
Linux kernel 2.6.6
Linux kernel 2.6.5
Linux kernel 2.6.4
Linux kernel 2.6.3
Linux kernel 2.6.2
Linux kernel 2.6.1-rc2
Linux kernel 2.6.1-rc1
Linux kernel 2.6.1
Linux kernel 2.6
描述:
--------------------------------------------------------------------------------
BUGTRAQ ID: 10634
Linux是一款开放源代码操作系统。
Linux内核包含的iptables不正确处理部分TCP头字段值,远程安全者可以利用这个漏洞对Linux系统进行拒绝服务安全。
此漏洞只有当在netfilter防火墙子系统中使用"-p tcp --tcp-option"选项时才会被触发。问题存在于tcp_find_option()函数中(net/ipv4/netfilter/ip_tables.c),定义的'opt'字段如下:
char opt[60 - sizeof(struct tcphdr)];
由于不正确处理,会导致'opt'生成负值并形成循环。安全者发送包含畸形TCP头字段数据的包可导致内核进行无限循环消耗所有CPU资源,产生拒绝服务。
<*来源:Adam Osuchowski (adwol@polsl.gliwice.pl)
链接:http://marc.theaimsgroup.com/?l=bugtraq&m=108861141304495&w=2
*>
测试方法:
--------------------------------------------------------------------------------
警 告
以下程序(方法)可能带有安全性,仅供安全研究与教学之用。使用者风险自负!
如下的包数据可触发此漏洞:
0x0000: 4500 0030 1234 4000 ff06 e83f c0a8 0001
0x0010: c0a8 0002 0400 1000 0000 0064 0000 0064
0x0020: 7000 0fa0 dc6a 0000 0204 05b4 0101 04fd
建议:
--------------------------------------------------------------------------------
厂商补丁:
Linux
-----
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://www.kernel.org/