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