Prometheus: remote read endpoint allows denial of service via crafted snappy payload
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 3.5.3, 3.11.3, 0.305.2, 0.311.3
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- 1 proof of concept on GitHub
- Exploitation: none
- Automatable: yes
- Technical impact: partial
Summary
Prometheus is an open-source monitoring system and time series database. Prior to versions 3.5.3 and 3.11.3, 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. This issue has been patched in versions 3.5.3 and 3.11.3.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: yes · Technical impact: partial
- Record last updated
Affected versions
- prometheus prometheus
fixed in 3.5.3; From 3.6.0 · fixed in 3.11.3
- github.com/prometheus/prometheusGo
fixed in 0.305.2; From 0.306.0 · fixed in 0.311.3; From 1.0.0-rc.0
- github.com/prometheus/prometheus/v2Go
All versions
- github.com/prometheus/prometheusGo
From 0.306.0 · fixed in 0.311.3
- github.com/prometheus/prometheusGo
fixed in 0.305.2
- github.com/prometheus/prometheusGo
From 1.0.0-rc.0 · through 2.5.0