client_golang is the instrumentation library for Go applications in Prometheus, and the promhttp package in client_golang provides tooling around HTTP servers and clients. In client_golang prior to version 1.11.1, HTTP server is susceptible to a Denial of Service through unbounded cardinality, and potential memory exhaustion, when handling requests with non-standard HTTP methods. In order to be affected, an instrumented software must use any of `promhttp.InstrumentHandler*` middleware except `RequestsInFlight`; not filter any specific methods (e.g GET) before middleware; pass metric with `method` label name to our middleware; and not have any firewall/LB/proxy that filters away requests with unknown `method`. client_golang version 1.11.1 contains a patch for this issue. Several workarounds are available, including removing the `method` label name from counter/gauge used in the InstrumentHandler; turning off affected promhttp handlers; adding custom middleware before promhttp handler that will sanitize the request method given by Go http.Request; and using a reverse proxy or web application firewall, configured to only allow a limited set of methods.
Project Subscriptions
| Vendors | Products |
|---|---|
|
Fedoraproject
Subscribe
|
|
|
Prometheus
Subscribe
|
Client Golang
Subscribe
|
|
Rdo Project
Subscribe
|
Rdo
Subscribe
|
|
Redhat
Subscribe
|
Container Native Virtualization
Subscribe
Enterprise Linux
Subscribe
Logging
Subscribe
Openshift
Subscribe
Openshift Api Data Protection
Subscribe
Openshift Data Foundation
Subscribe
Openshift Devspaces
Subscribe
Openstack
Subscribe
Rhel Aus
Subscribe
Rhel E4s
Subscribe
Rhel Tus
Subscribe
Rhosemc
Subscribe
Serverless
Subscribe
|
Advisories
| Source | ID | Title |
|---|---|---|
EUVD |
EUVD-2022-0960 | client_golang is the instrumentation library for Go applications in Prometheus, and the promhttp package in client_golang provides tooling around HTTP servers and clients. In client_golang prior to version 1.11.1, HTTP server is susceptible to a Denial of Service through unbounded cardinality, and potential memory exhaustion, when handling requests with non-standard HTTP methods. In order to be affected, an instrumented software must use any of `promhttp.InstrumentHandler*` middleware except `RequestsInFlight`; not filter any specific methods (e.g GET) before middleware; pass metric with `method` label name to our middleware; and not have any firewall/LB/proxy that filters away requests with unknown `method`. client_golang version 1.11.1 contains a patch for this issue. Several workarounds are available, including removing the `method` label name from counter/gauge used in the InstrumentHandler; turning off affected promhttp handlers; adding custom middleware before promhttp handler that will sanitize the request method given by Go http.Request; and using a reverse proxy or web application firewall, configured to only allow a limited set of methods. |
Github GHSA |
GHSA-cg3q-j54f-5p7p | Uncontrolled Resource Consumption in promhttp |
Fixes
Solution
No solution given by the vendor.
Workaround
No workaround given by the vendor.
References
History
Wed, 16 Jul 2025 13:45:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
epss
|
epss
|
Wed, 23 Apr 2025 20:15:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
ssvc
|
Projects
Sign in to view the affected projects.
Status: PUBLISHED
Assigner: GitHub_M
Published:
Updated: 2025-04-23T19:05:16.614Z
Reserved: 2021-11-16T00:00:00.000Z
Link: CVE-2022-21698
Updated: 2024-08-03T02:53:34.814Z
Status : Modified
Published: 2022-02-15T16:15:08.527
Modified: 2024-11-21T06:45:15.423
Link: CVE-2022-21698
OpenCVE Enrichment
No data.
EUVD
Github GHSA