漏洞信息详情
OpenBSD IPv6报文处理远程内核结构破坏指令执行漏洞
漏洞简介
OpenBSD是一款开放源代码Unix类操作系统。 OpenBSD在处理畸形IPv6协议报文时存在漏洞,远程攻击者可能利用此漏洞导致拒绝服务或执行任意指令。 如果远程攻击者向OpenBSD发送了特制的碎片ICMPv6报文的话,就可以触发mbuf内核内存管理结构中的堆溢出,导致执行任意内核态代码或拒绝服务。被溢出的结构在/sys/mbuf.h中定义如下: struct mbuf { struct m_hdr m_hdr; union { struct { struct pkthdr MH_pkthdr; /* M_PKTHDR set */ union { struct m_ext MH_ext; /* M_EXT set */ char MH_databuf[MHLEN]; } MH_dat; } MH; char M_databuf[MLEN]; /* !M_PKTHDR, !M_EXT */ } M_dat; }; 可见mbuf包含有另一个m_ext类型结构(/sys/mbuf.h): /* description of external storage mapped into mbuf, valid if M_EXT set */ struct m_ext { caddr_t ext_buf; /* start of buffer */ /* free routine if not the usual */ void (*ext_free)(caddr_t, u_int, void *); void *ext_arg; /* argument for ext_free */ u_int ext_size; /* size of buffer, for ext_free */ int ext_type; struct mbuf *ext_nextref; struct mbuf *ext_prevref; #ifdef DEBUG const char *ext_ofile; const char *ext_nfile; int ext_oline; int ext_nline; #endif }; 第二个结构中包含有ext_free变量,这是在释放mbuf时所调用的函数指针。如果使用特制的精心构造的分片IPv6报文覆盖了mbuf的话,攻击者就可以在系统调用m_freem()函数时控制OpenBSD内核的执行流。 此外,由于mbuf存储在了链表中,另一种攻击方式就是覆盖ext_nextref和ext_prevref指针,导致向内核内存的可控制区写入32位数据,类似于用户态堆覆盖攻击。
漏洞公告
目前厂商已经发布了升级补丁以修复这个安全问题,补丁下载链接: 临时解决方法: * 使用OpenBSD的防火墙阻断所有入站的IPv6报文。向/etc/pf.conf文件中添加以下行:
block in quick inet6 all
之后应使用以下命令加载所添加的行:
pfctl -f /etc/pf.conf
如果要启用PF:
pfctl -e -f /etc/pf.conf
如果要检查PF的状态并列出所有加载的规则:
pfctl -s rules 厂商补丁: OpenBSD ------- 目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
ftp://ftp.openbsd.org/pub/OpenBSD/patches/4.0/common/010_m_dup1.patch
参考网址
来源: VU#986425 名称: VU#986425 链接:http://www.kb.cert.org/vuls/id/986425 来源: OPENBSD 名称: [3.9] 020: SECURITY FIX: March 7, 2007 链接:http://www.openbsd.org/errata39.html#m_dup1 来源: SECTRACK 名称: 1017744 链接:http://www.securitytracker.com/id?1017744 来源: BID 名称: 22901 链接:http://www.securityfocus.com/bid/22901 来源: OPENBSD 名称: [4.0] 010: SECURITY FIX: March 7, 2007 链接:http://www.openbsd.org/errata40.html#m_dup1 来源: MISC 链接:http://www.coresecurity.com/?action=item&id=1703 来源: SECTRACK 名称: 1017735 链接:http://securitytracker.com/id?1017735 来源: SECUNIA 名称: 24490 链接:http://secunia.com/advisories/24490 来源: MLIST 名称: [source-changes] 20070226 CVS: cvs.openbsd.org: src 链接:http://marc.theaimsgroup.com/?l=openbsd-cvs&m=117252151023868&w=2 来源: OSVDB 名称: 33050 链接:http://www.osvdb.org/33050
受影响实体
- Openbsd Openbsd:4.0<!--2000-1-1-->
- Openbsd Openbsd:3.9<!--2000-1-1-->
补丁
暂无
还没有评论,来说两句吧...