CVE-2026-42154Prometheus是一个开源监控系统。在3.5.3和3.11.3之前的版本中,其远程读取端点存在一个漏洞。系统在处理snappy压缩请求时,未验证请求体中声明的解码长度就直接分配内存。未经身份验证的攻击者可以通过发送特制的小数据包触发巨大的内存分配。在并发负载下,这会导致内存耗尽,从而使Prometheus服务崩溃。
该漏洞位于Prometheus的`/api/v1/read`接口。在处理Snappy压缩的请求体时,程序读取压缩头中声明的解压长度,但未对该长度进行合理性校验。攻击者可以构造一个包含极小实际数据但声明了极大解压长度(例如数GB)的恶意请求包。当Prometheus处理该请求时,会根据声明长度尝试在堆上分配大量内存。由于攻击无需认证且易于触发,通过并发发送此类请求,可迅速耗尽服务器可用内存,导致OOM并使Prometheus进程崩溃。