Description
Prometheus: Remote read endpoint allows denial of service via crafted snappy payload
Impact
The remote read endpoint (/api/v1/read) does not validate the declared decoded length in a snappy-compressed request body before allocating memory.
An unauthenticated attacker can send a small payload that causes a huge heap allocation per request. Under concurrent load this can exhaust available memory and crash the Prometheus process.
Patches
Has the problem been patched? What versions should users upgrade to?
Fixed in 3.11.3 and 3.5.3 LTS. Users should upgrade to these versions or later.
Workarounds
User who can not upgrade can place Prometheus behind a reverse proxy or firewall that requires authentication before requests reach /api/v1/read.
Mitigation
Minimal update. May introduce new vulnerabilities or breaking changes.
|
 go | github.com/prometheus/prometheus | | 0.311.3 |
 debian 11 | prometheus | =2.24.1+ds-1 || =2.31.1+ds1-1 || =2.31.1+ds2-1 || =2.31.1+ds2-2 || =2.31.2+ds1-1 || =2.33.5+ds1-1 || =2.33.5+ds1-2 || =2.33.5+ds1-2~bpo11+1 || =2.33.5+ds1-3 || =2.33.5+ds1-4 || =2.34.0+ds1-1 || =2.35.0+ds1-1 || =2.36.2+ds1-1 || =2.37.1+ds1-1 || =2.38.0+ds1-1 || =2.39.1+ds1-1 || =2.39.1+ds1-2 || =2.40.0+ds-1 || =2.40.1+ds-1 || =2.40.2+ds-1 || =2.40.2+ds-2 || =2.40.2+ds-3 || =2.40.3+ds-1 || =2.40.4+ds-1 || =2.40.4+ds-1+0.riscv64.1 || =2.40.4+ds-2 || =2.40.5+ds-1 || =2.40.5+ds-2 || =2.40.5+ds-3 || =2.40.7+ds-1 || =2.41.0+ds-1 || =2.41.0+ds-2 || =2.42.0+ds-1 || =2.42.0+ds-2 || =2.42.0+ds-3 || =2.42.0+ds-4 || =2.42.0+ds-5 || =2.42.0+ds-6 || =2.43.1+ds-1 || =2.44.0+ds-1 || =2.45.0+ds-1 || =2.45.0+ds-2 || =2.45.0+ds-3 || =2.45.1+ds-1 || =2.45.1+ds-2 || =2.45.1+ds-3 || =2.45.3+ds-1 || =2.45.3+ds-2 || =2.45.3+ds-3 || =2.45.4+ds-1 || =2.45.4+ds-2 || =2.45.5+ds-1 || =2.45.6+ds-1 || =2.45.6+ds-2 || =2.45.6+ds-3 || =2.45.6+ds-4 || =2.45.6+ds-5 || =2.45.6+ds-6 || =2.45.6+ds-7 || =2.45.6+ds-8 || =2.45.6+ds-9 || =2.53.1+ds-1 || =2.53.1+ds-2 || =2.53.1+ds-3 || =2.53.3+ds1-1 || =2.53.3+ds1-2 || =2.53.4+ds1-1 || =2.53.5+ds1-1 || =2.53.5+ds1-2 || =2.53.5+ds1-3 || =2.53.5+ds1-4 | - |
 debian 13 | prometheus | =2.53.3+ds1-2 || =2.53.4+ds1-1 || =2.53.5+ds1-1 || =2.53.5+ds1-2 || =2.53.5+ds1-3 || =2.53.5+ds1-4 | - |
 debian 14 | prometheus | =2.53.3+ds1-2 || =2.53.4+ds1-1 || =2.53.5+ds1-1 || =2.53.5+ds1-2 || =2.53.5+ds1-3 || =2.53.5+ds1-4 | - |
 debian 12 | prometheus | =2.42.0+ds-5 || =2.42.0+ds-6 || =2.43.1+ds-1 || =2.44.0+ds-1 || =2.45.0+ds-1 || =2.45.0+ds-2 || =2.45.0+ds-3 || =2.45.1+ds-1 || =2.45.1+ds-2 || =2.45.1+ds-3 || =2.45.3+ds-1 || =2.45.3+ds-2 || =2.45.3+ds-3 || =2.45.4+ds-1 || =2.45.4+ds-2 || =2.45.5+ds-1 || =2.45.6+ds-1 || =2.45.6+ds-2 || =2.45.6+ds-3 || =2.45.6+ds-4 || =2.45.6+ds-5 || =2.45.6+ds-6 || =2.45.6+ds-7 || =2.45.6+ds-8 || =2.45.6+ds-9 || =2.53.1+ds-1 || =2.53.1+ds-2 || =2.53.1+ds-3 || =2.53.3+ds1-1 || =2.53.3+ds1-2 || =2.53.4+ds1-1 || =2.53.5+ds1-1 || =2.53.5+ds1-2 || =2.53.5+ds1-3 || =2.53.5+ds1-4 | - |