CVE-2025-55181CVE-2025-55181是Facebook proxygen库中的一个高危拒绝服务漏洞。该漏洞存在于proxygen::coro::HTTPQuicCoroSession组件中,当处理大于2^31字节(约2GB)的HTTP请求或响应体时,会触发一个无限循环。这个无限循环会阻塞事件循环,并且在每次循环迭代中无限制地向std::vector追加数据,导致无限制的内存增长。攻击者无需认证即可远程利用此漏洞,最终导致目标进程内存耗尽而崩溃,造成服务中断。由于该漏洞影响HTTP/QUIC协议处理的核心组件,任何使用proxygen库处理HTTP流量的服务都可能受到影响。
漏洞根源在于proxygen::coro::HTTPQuicCoroSession对大尺寸HTTP体的处理逻辑存在缺陷。当接收到的HTTP请求或响应体大小超过2^31字节时,代码进入一个无限循环。在每个循环迭代中,程序都会执行std::vector的append操作,导致内存持续增长而无法释放。这种设计缺陷使得:1) 事件循环被无限循环阻塞,无法处理其他请求;2) 每次迭代的内存分配不被释放;3) 最终导致进程可用内存耗尽,触发OOM Killer或系统不稳定。攻击者可通过构造特制的HTTP请求(使用Transfer-Encoding: chunked或Content-Length设置大值)来触发此漏洞。修复方案已在commit 17689399ef99b7c3d3a8b2b768b1dba1a4b72f8f中实现,主要增加了对HTTP体大小的边界检查和循环退出条件。