网络安全领域再传警报。知名安全研究员 Marcus Hutchins 近日披露了一个潜伏在 Comodo Internet Security 防火墙驱动中的严重缺陷——这个被命名为ComoDoS的零日漏洞,能让远程攻击者仅凭一个精心构造的 IPv6 数据包,就直接让目标 Windows 系统陷入崩溃,而且全程绕过所有防火墙规则。
更令业界担忧的是,Comodo 方面在收到多次漏洞披露后至今没有任何回应。Marcus Hutchins 已经向 Comodo 安全团队提交了完整的根本原因分析、补丁建议以及概念验证代码,但截至目前,官方补丁仍然遥遥无期。
防火墙驱动里的"阿喀琉斯之踵"
问题的根源藏在Inspect.sys这个内核级防火墙驱动里。作为 Comodo Internet Security 的核心组件,它负责在数据包进入系统时进行深度检测,决定哪些流量可以放行、哪些应当拦截。
IPv6 协议在设计时引入了"扩展头"机制——这些可选头部串联在固定的 40 字节 IPv6 基础头部和上层协议(如 TCP、UDP)之间,用于携带路由提示、分片信息、目的地选项等附加数据。
Inspect.sys 在解析这些扩展头时,会从 IPv6 固定头部读取payload_length字段,然后逐个遍历扩展头,将每个头的长度从该变量中扣除。这本身是一个常规的解析流程,但代码中却遗漏了最关键的一步:从未验证 payload_length 的合理性。
如果攻击者故意把 IPv6 的载荷长度设得比所有扩展头的总长度还要小,那个无符号 64 位的payload_length变量就会发生灾难性的整数下溢——数值从 0 直接回绕到约18.4 万亿亿(0xFFFFFFFFFFFFFFF8)。这个荒谬的超大数值随后被用于内存操作,直接触发内核崩溃,也就是我们熟悉的 Windows 蓝屏死机(BSOD)。
防火墙规则形同虚设
这个漏洞最棘手的地方在于它的"穿透性"。防火墙驱动必须先完成 TCP/IP 头部的解析,才能根据端口、协议、方向等条件判断是否执行拦截。而 ComoDoS 的攻击恰恰发生在解析阶段——无论你把所有端口封得多么严实,数据包都会在规则生效之前就把系统搞崩溃。
换句话说,传统的端口封锁、入站规则、IP 黑名单,对这类攻击完全无效。攻击者不需要和目标建立任何合法连接,也不需要目标开放特定端口,一个孤零零的 IPv6 数据包飞过来,系统就直接躺平。
Marcus Hutchins 在 PoC 中特意选用了目标选项扩展头(Destination Options Header,类型 60),原因很实际:这种扩展头在路由器层面的过滤最少,恶意数据包穿越互联网到达目标的成功率最高。
四行 Python 代码就能让系统崩溃
概念验证的简洁程度令人咋舌。利用 Scapy 库,整个攻击代码仅需寥寥数行:
Python
ext = IPv6ExtHdrDestOpt(nh=6, options=[PadN(optdata=b"\x00" * 8)]) tcp = TCP(sport=1337, dport=80, flags="S", seq=0, ack=1, window=0x2000) ipv6 = IPv6(dst=dst_ip, nh=60, hlim=64, plen=8) pkt = ipv6 / ext / tcp send(pkt)plen=8把载荷长度压到极低,而扩展头本身的长度却超过了这个值。两者一相减,下溢瞬间发生。接下来的内核内存操作因为拿到了一个近乎无限大的长度值,直接触发页面错误,系统以 DISPATCH_LEVEL 级别崩溃,连容错的机会都没有。
不止蓝屏:同一下溢还埋着更深的隐患
除了稳定的远程拒绝服务攻击(DoS)原语,Marcus Hutchins 还在同一下溢路径中发现了两种更复杂的内存损坏可能。
越界读取(OOB Read)发生在 WebDAV/HTTP 工件扫描器内部。下溢后的超大长度值在这里被截断为 16 位,上限约 65 KB。虽然数值被砍了一刀,但非法的内存访问仍然会导致页面错误,系统照样崩溃。
越界写入(OOB Write)则需要先完成完整的 TCP 三次握手才能触发。这条路径把下溢值截断为 32 位,产生的内核池溢出高达4 GB。考虑到标准网络数据包的最大尺寸只有 65 KB,目前几乎没有办法把溢出控制到"刚好不崩溃"的程度。这意味着,虽然从理论上存在进一步利用的空间,但远程代码执行(RCE)在当前条件下可行性极低。
从旧版驱动里找到的线索
这个漏洞的发现过程本身也值得一提。Marcus Hutchins 当时正在研究 BYOVD(Bring Your Own Vulnerable Driver,自带易受攻击驱动)攻击面,并借助 AI 辅助分析流程对多款安全软件的驱动进行审计。
在检查 Comodo 的旧版驱动时,他注意到了一些架构层面的设计缺陷。这些发现促使他对手头的最新版 Inspect.sys 进行人工深度分析,最终锁定了 IPv6 扩展头解析器中的这个整数下溢问题。可以说,AI 辅助筛查提供了方向,而人工的精细审查才挖出了真正的炸弹。
在补丁到来之前,企业能做些什么
由于官方补丁尚未发布,依赖 Comodo Internet Security 的组织需要采取一些临时措施来降低风险:
监控异常 IPv6 流量:重点关注包含畸形扩展头的数据包,尤其是目标选项头(Type 60)出现的频率和来源。
网络层过滤:在边界路由器或防火墙上配置规则,丢弃格式异常的 IPv6 扩展头数据包,尽可能在入口端就把恶意流量掐掉。
评估替代方案:对于安全要求极高的环境,在补丁发布前可以考虑临时调整端点防护策略,或部署额外的网络入侵检测层。