CVE-2026-40394CVE-2026-40394是Varnish Cache及Varnish Enterprise中的一个安全漏洞,由于HTTP/2升级过程中的工作区管理缺陷,攻击者可通过发送特制的预取数据触发工作区溢出。该问题会导致守护进程崩溃,从而造成拒绝服务。受影响版本包括Varnish Cache 9.0.1之前和Varnish Enterprise 6.0.16r11之前的版本。
本漏洞源于Varnish Cache在处理HTTP/2协议升级时的内存管理逻辑错误,具体表现为“工作区溢出”。Varnish的工作区是用于存储请求、响应及会话相关临时数据的固定大小内存块。在HTTP/2会话初始化阶段,连接始于HTTP/1传输机制。当客户端发起升级至HTTP/2(h2)的请求时,Varnish会将原始的HTTP/1请求对象重新利用并转换为HTTP/2的流0。关键缺陷发生在升级过程中的缓冲区分配环节:系统为了预留向客户端发送HTTP/2帧的空间,会在当前工作区内进行内存分配,这一操作将原有的连续工作区分割为两部分。如果在此时存在大量的预取数据,这些数据占据了工作区的一定空间。随后,当Varnish尝试执行下一次数据抓取并应用流水线操作时,由于剩余的连续工作区空间不足以支撑该操作,系统将无法分配所需内存,从而触发工作区溢出错误。这会导致Varnish守护进程触发panic并异常终止,造成服务不可用。