关键信息提取 漏洞概述 漏洞名称 多个(13个)Ethereal远程溢出漏洞 漏洞影响的版本 Ethereal 0.8.14 - 0.10.2 漏洞影响的应用程序 多协议包嗅探器Ethereal 风险等级 严重 漏洞影响的解析器 BGP、EIGRP、IGAP、IRDA、ISUP、NetFlow、PGM、TCAP和UCP 漏洞详情 通过代码审计发现13个远程可触发的堆栈溢出漏洞。 每个漏洞可通过精心构造的包注入或诱导用户加载恶意的包捕获文件来执行任意代码。 具体漏洞描述 1. NetFlow v9解析器模板缓存溢出 - 解析v9_template结构时,当模板条目计数>64时,会溢出堆栈缓冲区,允许覆盖保存的指令指针,从而实现远程代码执行。 2. IGAP协议解析器账户溢出和消息溢出 - 解析包含过长账户名(>17)或过长消息(>65)的不同缓冲区可能会溢出堆栈,允许覆盖最多238(或190)字节,这两种情况下都可能实现远程代码执行的利用。 3. EIGRP协议TLV_IP_INT长IP地址溢出和TLV_IP_EXT长IP地址溢出 - 解析包含过长IP地址的EIGRP IP数据包时,会导致堆栈缓冲区溢出,从而可能实现远程代码执行。 4. PGM协议NakList溢出 - 解析具有精心构造的NakList的PGM数据包时,可能出现非常小的堆栈溢出,由于堆栈布局,代码执行利用似乎不太可能。 5. IRDA协议插件IRCOM_PORT_NAME溢出 - 解析包含过长端口名的IRCOM_PORT_NAME数据包时,可以覆盖堆栈上的最多2个字节。类似于[06],堆栈布局使远程代码执行变得非常困难或不可能。 6. BGP协议MPLS标签溢出 - 解析带有MPLS IPv6标签的BGP数据包时,堆栈上最多13个字节可能会被任意数据覆盖。由于堆栈布局,利用程度似乎不太可能且未进行测试。 7. ISUP协议互操作功能地址溢出 - 解析ISUP数据包时,由于存在过大的IWFA,会导致堆栈缓冲区溢出,可能导致远程代码执行。 8. TCAP协议TID溢出 - 处理TCAP数据包内的ASN.1编码事务ID时,4字节堆栈变量可能会溢出,可能导致远程代码执行。 9. UCP协议处理字符串字段溢出、整数字段溢出和时间字段溢出 - 处理UCP数据包中的字符串字段、整数字段和时间字段时,堆栈缓冲区可能会溢出,可能导致远程代码执行。 - 要通过网络利用这些漏洞,攻击者必须能够在一个TCP数据包中放入超过BUFSIZ个字节。这意味着只有当系统的MTU大于BUFSIZ时,这些漏洞才能通过网络利用。glibc系统上的BUFSIZ为8192,BSD系统上为1024,Windows系统上为512。 漏洞披露时间表 2004年3月5日:联系Ethereal开发人员,告知他们10个漏洞。 2004年3月6日:关闭6个漏洞,包括EIGRP、IGAP、ISUP和BGP。 2004年3月7日:IRDA漏洞关闭。 2004年3月8日:PGM漏洞关闭。 2004年3月9日:NetFlow漏洞关闭。 2004年3月17日:发现UCP漏洞并告知供应商。 2004年3月19日:关闭UCP和TCAP漏洞。 2004年3月22日:Ethereal开发人员发布迷你安全公告,敦促用户升级到版本0.10.3,该版本将在本周晚些时候发布。 2004年3月23日:公开披露。 CVE信息 该漏洞被CVE项目命名为CAN-2004-0176。 建议措施 在升级到Ethereal的0.10.3版本或从分发商处获取修复包之前,强烈建议禁用以下解析器: - BGP、EIGRP、IGAP、IRDA、ISUP、NetFlow、PGM、TCAP和UCP。