FreeBSD安全公告 FreeBSD-SA-02:20

/ns/ld/unix/data/20020513025837.htm

涉及程序:
FreeBSD 4.5

描述:
FreeBSD 4.5 syncache/syncookies拒绝服务攻击漏洞


详细:
FreeBSD是源代码开放的操作系统,其中FreeBSD 4.5支持了SYN cache (syncache)和SYN cookies (syncookies)机制,有对FLOOD拒绝服务攻击的保护功能。

当实现syncookie时引起两个漏洞,导致系统崩溃。

1)当通过syncookie接收到SYN信息包时,它使用未初始化的指针来为新的套接口查找TCP选项,这个指针可以为NULL指针,这就可以导致系统崩溃。

2)当SYN信息包到达一监听套接口的时候会建立一syncache条目,如果建立这个监听套接字的应用程序死掉或者重新启动,会使用一个不同的inpcb重新建立监听套接口,后来到达的ACK包或者重复的SYN包匹配已经存在的syncache条目时会导致引用旧的inpcb指针,如果指针内容不同,将导致系统崩溃。

受影响的系统:
FreeBSD FreeBSD 4.5-STABLE
FreeBSD FreeBSD 4.5-RELEASE




解决方案:
下载补丁:
1) 将受影响的FreeBSD系统升级到相应修正日期后发布的4.5-STABLE或RELENG_4_5安全分支。

2) 为现有系统安装补丁:从下列地址下载相应的补丁并以root身份执行下列命令:

# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-02:20/syncache.patch
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-02:20/syncache.patch.asc

本补丁仅适用于4.5-RELEASE。

请用你的PGP工具核实分开的PGP签名。

请以root身份执行下列命令:

# cd /usr/src
# patch -p < /path/to/patch

按照下列描述重新编写kernel并重启系统:
http://www.freebsd.org/handbook/kernelconfig.html



如果您不能立刻安装补丁或者升级,建议您采取以下措施以降低威胁:

暂时关闭syncookie机制:

# sysctl -w net.inet.tcp.syncookies=0