漏洞概述 标题: Heap Buffer Overflow in GG Dissector (Network-Triggered) 严重程度: High 组件: Ettercap GG Dissector 文件: 摘要: 在GG (Gadu-Gadu) 嗅探器中存在堆缓冲区溢出漏洞,原因是复制攻击者控制的数据时没有进行适当的边界检查。 该漏洞通过网络流量触发,不需要认证。 影响范围 堆缓冲区溢出 潜在内存损坏 可能的拒绝服务 (DoS) 根据堆布局,可能存在进一步利用的可能性 修复方案 替换 为有界复制 强制严格的上限检查 验证所有数据包派生的长度 技术细节 堆缓冲区分配: 长度来源: 问题: 没有对分配的缓冲区大小(71字节)进行上限检查 仅应用了负值检查 结果: - 通过 导致堆溢出 - 额外的越界写入通过空终止符 受影响变体 根本原因 守卫条件: 确保一致性但不防止利用。由于攻击者控制整个TCP数据包大小,他们完全控制 。 可达性 当Ettercap处理TCP端口8074上的GG流量时自动触发 不需要认证 攻击者必须: - 在同一网络段,或 - 在中间人 (MITM) 位置 复现步骤 1. 运行Ettercap: 2. 确保TCP端口8074上的流量正在被嗅探 3. 发送构造的数据包 4. 观察崩溃/内存损坏 Valgrind 证据 结论 漏洞被确认可利用,原因如下: 完全由攻击者控制的长度 ( ) 缺乏上限验证 直接使用不安全的内存操作 推荐 替换 为有界复制 强制严格的上限检查 验证所有数据包派生的长度