GO-2022-0322

Source
https://vuln.go.dev/ID/GO-2022-0322.json
Aliases
Published
2022-07-15T23:29:02Z
Modified
2023-01-19T16:55:28Z
Details

The Prometheus client_golang HTTP server is vulnerable to a denial of service attack when handling requests with non-standard HTTP methods.

In order to be affected, an instrumented software must use any of the promhttp.InstrumentHandler* middleware except RequestsInFlight; not filter any specific methods (e.g GET) before middleware; pass a metric with a "method" label name to a middleware; and not have any firewall/LB/proxy that filters away requests with unknown "method".

References

Affected packages

Go / github.com/prometheus/client_golang

github.com/prometheus/client_golang

Affected ranges

Type
SEMVER
Events
Introduced
0
Fixed
1.11.1

Affected versions

Ecosystem specific

{
    "imports": [
        {
            "symbols": [
                "Handler",
                "HandlerFor",
                "InstrumentHandlerCounter",
                "InstrumentHandlerDuration",
                "InstrumentHandlerRequestSize",
                "InstrumentHandlerResponseSize",
                "InstrumentHandlerTimeToWriteHeader",
                "InstrumentMetricHandler",
                "InstrumentRoundTripperCounter",
                "InstrumentRoundTripperDuration",
                "flusherDelegator.Flush",
                "readerFromDelegator.ReadFrom",
                "responseWriterDelegator.Write",
                "responseWriterDelegator.WriteHeader",
                "sanitizeMethod"
            ],
            "path": "github.com/prometheus/client_golang/prometheus/promhttp"
        }
    ]
}

Database specific

{
    "url": "https://pkg.go.dev/vuln/GO-2022-0322"
}