网络安全领域再传警报。知名安全研究员 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 扩展头数据包,尽可能在入口端就把恶意流量掐掉。
-
评估替代方案:对于安全要求极高的环境,在补丁发布前可以考虑临时调整端点防护策略,或部署额外的网络入侵检测层。
