安全研究

安全漏洞
FreeBSD NetINet TCP MSS大小远程拒绝服务漏洞

发布日期:2004-02-03
更新日期:2004-02-13

受影响系统:
FreeBSD FreeBSD 5.2-RELEASE
FreeBSD FreeBSD 5.1-RELEASE
FreeBSD FreeBSD 5.0
FreeBSD FreeBSD 4.8
FreeBSD FreeBSD 4.7
FreeBSD FreeBSD 4.6
FreeBSD FreeBSD 4.5
描述:
BUGTRAQ  ID: 9572
CVE(CAN) ID: CVE-2004-0002

FreeBSD是一款开放源代码的操作系统。

FreeBSD netinet实现对TCP MSS处理存在问题,远程攻击者可以利用这个漏洞对目标进行拒绝服务攻击。

为了网络连接优化,TCP需要调整MSS,然后包大小必须遵守路径MTU,这可以通过动态的从远程主机和网络的反馈进行调整。

要进行资源耗竭,可通过如下两种方法:

- TCP连接阶段设置通告在末端间交换的本地MSS,远程末端可以设置任意低的MSS值(除了BSD代码强制限制的64八位组的最小MTU)。当本地主机发送数据会强制发送个小的IP包来代替大包。

如要替换普通的TCP负载大小为1448的字节,在强制设置后分割成TCP负载为12字节(MTU 64)的包,因此我们必须发送120次这样的包。在快速链接上这可消耗大量本地CPU,如果攻击者下载大的文件如WWW和FTP服务器上,会造成拒绝服务。

此问题可以通过sysctl net.inet.tcp.minmss设置强制最小MTU为256八位组来暂时消除此问题。

- 本地主机接收来自远程主机TCP连接的数据,本地主机没有控制远程主机发送的包大小。远程主机可以选择上面所描述的攻击,并发送TCP负载至少为1字节的数据,因为每个包都会进入tcp_input() ,然后处理此包,sowakeup()被信号通告连接进程。

如攻击者以2Mbit/s每秒提交4716个包,sowakeup()就必须进行相同数量的处理,可造成资源耗竭,这类攻击可通过上传大量数据来完成,一般如通过提交超大POST 请求给WWW服务器。

<*来源:FreeBSD
  
  链接:http://lists.freebsd.org/pipermail/cvs-src/2004-January/016271.html
*>

建议:
厂商补丁:

FreeBSD
-------
在最新的FreeBSD CVS development branch已经修正此漏洞:

http://lists.freebsd.org/pipermail/cvs-src/

浏览次数:3098
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障