vulnerability

Red Hat: CVE-2022-21698: Denial of service using InstrumentHandlerCounter (Multiple Advisories)

Severity
5
CVSS
(AV:N/AC:L/Au:N/C:N/I:N/A:P)
Published
2022-02-15
Added
2022-05-13
Modified
2025-03-11

Description

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.

Solution(s)

redhat-upgrade-aardvark-dnsredhat-upgrade-buildahredhat-upgrade-buildah-debuginforedhat-upgrade-buildah-debugsourceredhat-upgrade-buildah-testsredhat-upgrade-buildah-tests-debuginforedhat-upgrade-cockpit-podmanredhat-upgrade-conmonredhat-upgrade-conmon-debuginforedhat-upgrade-conmon-debugsourceredhat-upgrade-container-selinuxredhat-upgrade-containernetworking-pluginsredhat-upgrade-containernetworking-plugins-debuginforedhat-upgrade-containernetworking-plugins-debugsourceredhat-upgrade-containers-commonredhat-upgrade-critredhat-upgrade-criuredhat-upgrade-criu-debuginforedhat-upgrade-criu-debugsourceredhat-upgrade-criu-develredhat-upgrade-criu-libsredhat-upgrade-criu-libs-debuginforedhat-upgrade-crunredhat-upgrade-crun-debuginforedhat-upgrade-crun-debugsourceredhat-upgrade-fuse-overlayfsredhat-upgrade-fuse-overlayfs-debuginforedhat-upgrade-fuse-overlayfs-debugsourceredhat-upgrade-grafanaredhat-upgrade-grafana-debuginforedhat-upgrade-libslirpredhat-upgrade-libslirp-debuginforedhat-upgrade-libslirp-debugsourceredhat-upgrade-libslirp-develredhat-upgrade-netavarkredhat-upgrade-oci-seccomp-bpf-hookredhat-upgrade-oci-seccomp-bpf-hook-debuginforedhat-upgrade-oci-seccomp-bpf-hook-debugsourceredhat-upgrade-podmanredhat-upgrade-podman-catatonitredhat-upgrade-podman-catatonit-debuginforedhat-upgrade-podman-debuginforedhat-upgrade-podman-debugsourceredhat-upgrade-podman-dockerredhat-upgrade-podman-gvproxyredhat-upgrade-podman-gvproxy-debuginforedhat-upgrade-podman-pluginsredhat-upgrade-podman-plugins-debuginforedhat-upgrade-podman-remoteredhat-upgrade-podman-remote-debuginforedhat-upgrade-podman-testsredhat-upgrade-python3-criuredhat-upgrade-python3-podmanredhat-upgrade-runcredhat-upgrade-runc-debuginforedhat-upgrade-runc-debugsourceredhat-upgrade-skopeoredhat-upgrade-skopeo-debuginforedhat-upgrade-skopeo-debugsourceredhat-upgrade-skopeo-testsredhat-upgrade-slirp4netnsredhat-upgrade-slirp4netns-debuginforedhat-upgrade-slirp4netns-debugsourceredhat-upgrade-toolboxredhat-upgrade-toolbox-debuginforedhat-upgrade-toolbox-debugsourceredhat-upgrade-toolbox-testsredhat-upgrade-udica
Title
NEW

Explore Exposure Command

Confidently identify and prioritize exposures from endpoint to cloud with full attack surface visibility and threat-aware risk context.