{"id":"CVE-2021-32778","aliases":["BIT-envoy-2021-32778","EUVD-2021-19542","GHSA-3xh3-33v5-chcc","RHEA-2021:4051"],"status":"published","title":"Excessive CPU utilization when closing HTTP/2 streams","description":"Envoy is an open source L7 proxy and communication bus designed for large modern service oriented architectures. In affected versions envoy’s procedure for resetting a HTTP/2 stream has O(N^2) complexity, leading to high CPU utilization when a large number of streams are reset. Deployments are susceptible to Denial of Service when Envoy is configured with high limit on H/2 concurrent streams. An attacker wishing to exploit this vulnerability would require a client opening and closing a large number of H/2 streams. Envoy versions 1.19.1, 1.18.4, 1.17.4, 1.16.5 contain fixes to reduce time complexity of resetting HTTP/2 streams. As a workaround users may limit the number of simultaneous HTTP/2 dreams for upstream and downstream peers to a low number, i.e. 100.","severity":{"version":"3.1","score":5.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:N/A:L","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-10","score":0.0123,"percentile":0.69174,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-834"],"published":"2021-08-24T20:30:11Z","modified":"2026-10-20T10:54:42Z","fixes":[{"ecosystem":"Bitnami","package":"envoy","fixed_in":["1.16.5","1.17.4","1.18.4","1.19.1"],"sources":["osv"]},{"ecosystem":"Red Hat:service_mesh:2.1::el8","package":"servicemesh","fixed_in":["0:2.1.0-5.el8"],"sources":["osv"]},{"ecosystem":"Red Hat:service_mesh:2.1::el8","package":"servicemesh-cni","fixed_in":["0:2.1.0-5.el8"],"sources":["osv"]},{"ecosystem":"Red Hat:service_mesh:2.1::el8","package":"servicemesh-grafana","fixed_in":["0:7.2.1-2.el8"],"sources":["osv"]},{"ecosystem":"Red Hat:service_mesh:2.1::el8","package":"servicemesh-grafana-debuginfo","fixed_in":["0:7.2.1-2.el8"],"sources":["osv"]},{"ecosystem":"Red Hat:service_mesh:2.1::el8","package":"servicemesh-operator","fixed_in":["0:2.1.0-4.el8"],"sources":["osv"]},{"ecosystem":"Red Hat:service_mesh:2.1::el8","package":"servicemesh-pilot-agent","fixed_in":["0:2.1.0-5.el8"],"sources":["osv"]},{"ecosystem":"Red Hat:service_mesh:2.1::el8","package":"servicemesh-pilot-discovery","fixed_in":["0:2.1.0-5.el8"],"sources":["osv"]},{"ecosystem":"Red Hat:service_mesh:2.1::el8","package":"servicemesh-prometheus","fixed_in":["0:2.23.0-1.el8"],"sources":["osv"]},{"ecosystem":"Red Hat:service_mesh:2.1::el8","package":"servicemesh-proxy","fixed_in":["0:2.1.0-13.el8"],"sources":["osv"]},{"ecosystem":"Red Hat:service_mesh:2.1::el8","package":"servicemesh-proxy-debuginfo","fixed_in":["0:2.1.0-13.el8"],"sources":["osv"]},{"ecosystem":"Red Hat:service_mesh:2.1::el8","package":"servicemesh-proxy-debugsource","fixed_in":["0:2.1.0-13.el8"],"sources":["osv"]},{"ecosystem":"Red Hat:service_mesh:2.1::el8","package":"servicemesh-proxy-wasm","fixed_in":["0:2.1.0-13.el8"],"sources":["osv"]},{"ecosystem":"Red Hat:service_mesh:2.1::el8","package":"servicemesh-ratelimit","fixed_in":["0:2.1.0-1.el8"],"sources":["osv"]}],"affected":[{"source":"osv","ecosystem":"Bitnami","package":"envoy","ranges":[{"type":"SEMVER","events":[{"introduced":"1.16.0"},{"fixed":"1.16.5"},{"introduced":"1.17.0"},{"fixed":"1.17.4"},{"introduced":"1.18.0"},{"fixed":"1.18.4"},{"introduced":"1.19.0"},{"fixed":"1.19.1"}]}]},{"source":"osv","ecosystem":"Red Hat:service_mesh:2.1::el8","package":"servicemesh","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:2.1.0-5.el8"}]}]},{"source":"osv","ecosystem":"Red Hat:service_mesh:2.1::el8","package":"servicemesh-cni","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:2.1.0-5.el8"}]}]},{"source":"osv","ecosystem":"Red Hat:service_mesh:2.1::el8","package":"servicemesh-grafana","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:7.2.1-2.el8"}]}]},{"source":"osv","ecosystem":"Red Hat:service_mesh:2.1::el8","package":"servicemesh-grafana-debuginfo","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:7.2.1-2.el8"}]}]},{"source":"osv","ecosystem":"Red Hat:service_mesh:2.1::el8","package":"servicemesh-operator","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:2.1.0-4.el8"}]}]},{"source":"osv","ecosystem":"Red Hat:service_mesh:2.1::el8","package":"servicemesh-pilot-agent","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:2.1.0-5.el8"}]}]},{"source":"osv","ecosystem":"Red Hat:service_mesh:2.1::el8","package":"servicemesh-pilot-discovery","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:2.1.0-5.el8"}]}]},{"source":"osv","ecosystem":"Red Hat:service_mesh:2.1::el8","package":"servicemesh-prometheus","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:2.23.0-1.el8"}]}]},{"source":"osv","ecosystem":"Red Hat:service_mesh:2.1::el8","package":"servicemesh-proxy","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:2.1.0-13.el8"}]}]},{"source":"osv","ecosystem":"Red Hat:service_mesh:2.1::el8","package":"servicemesh-proxy-debuginfo","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:2.1.0-13.el8"}]}]},{"source":"osv","ecosystem":"Red Hat:service_mesh:2.1::el8","package":"servicemesh-proxy-debugsource","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:2.1.0-13.el8"}]}]},{"source":"osv","ecosystem":"Red Hat:service_mesh:2.1::el8","package":"servicemesh-proxy-wasm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:2.1.0-13.el8"}]}]},{"source":"osv","ecosystem":"Red Hat:service_mesh:2.1::el8","package":"servicemesh-ratelimit","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:2.1.0-1.el8"}]}]}],"products":[{"vendor":"envoyproxy","product":"envoy"}],"references":[{"url":"https://www.envoyproxy.io/docs/envoy/v1.19.0/version_history/version_history","tags":["x_refsource_MISC","x_transferred","Release Notes","Vendor Advisory","advisory"]},{"url":"https://github.com/envoyproxy/envoy/security/advisories/GHSA-3xh3-33v5-chcc","tags":["x_refsource_CONFIRM","x_transferred","Third Party Advisory","advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2021-32778","tags":["web","advisory"]},{"url":"https://access.redhat.com/errata/RHEA-2021:4051","tags":["advisory"]},{"url":"https://issues.redhat.com/browse/MAISTRA-2693","tags":["article"]},{"url":"https://security.access.redhat.com/data/csaf/v2/advisories/2021/rhea-2021_4051.json","tags":["advisory"]},{"url":"https://access.redhat.com/security/cve/CVE-2021-32778","tags":["report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=1996946","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2021-32778","tags":["advisory"]},{"url":"https://istio.io/latest/news/security/istio-security-2021-008/","tags":["article"]}],"sources":{"cve":[{"id":"CVE-2021-32778","title":"Excessive CPU utilization when closing HTTP/2 streams","description":"Envoy is an open source L7 proxy and communication bus designed for large modern service oriented architectures. In affected versions envoy’s procedure for resetting a HTTP/2 stream has O(N^2) complexity, leading to high CPU utilization when a large number of streams are reset. Deployments are susceptible to Denial of Service when Envoy is configured with high limit on H/2 concurrent streams. An attacker wishing to exploit this vulnerability would require a client opening and closing a large number of H/2 streams. Envoy versions 1.19.1, 1.18.4, 1.17.4, 1.16.5 contain fixes to reduce time complexity of resetting HTTP/2 streams. As a workaround users may limit the number of simultaneous HTTP/2 dreams for upstream and downstream peers to a low number, i.e. 100.","status":"published","published":"2021-08-24T20:30:11Z","modified":"2024-08-03T23:33:55.854Z","cvss":[{"version":"3.1","score":5.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:N/A:L","level":"medium","assessor":"cna"}],"cwes":["CWE-834"],"updated_at":"2026-11-02T14:33:07.014772Z"}],"euvd":[{"id":"EUVD-2021-19542","description":"Envoy is an open source L7 proxy and communication bus designed for large modern service oriented architectures. In affected versions envoy’s procedure for resetting a HTTP/2 stream has O(N^2) complexity, leading to high CPU utilization when a large number of streams are reset. Deployments are susceptible to Denial of Service when Envoy is configured with high limit on H/2 concurrent streams. An attacker wishing to exploit this vulnerability would require a client opening and closing a large number of H/2 streams. Envoy versions 1.19.1, 1.18.4, 1.17.4, 1.16.5 contain fixes to reduce time complexity of resetting HTTP/2 streams. As a workaround users may limit the number of simultaneous HTTP/2 dreams for upstream and downstream peers to a low number, i.e. 100.","status":"published","published":"2021-08-24T20:30:11Z","modified":"2024-08-03T23:33:55Z","cvss":[{"version":"3.1","score":5.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:N/A:L","level":"medium"}],"updated_at":"2026-11-03T03:24:35.855495Z"}],"nvd":[{"id":"CVE-2021-32778","description":"Envoy is an open source L7 proxy and communication bus designed for large modern service oriented architectures. In affected versions envoy’s procedure for resetting a HTTP/2 stream has O(N^2) complexity, leading to high CPU utilization when a large number of streams are reset. Deployments are susceptible to Denial of Service when Envoy is configured with high limit on H/2 concurrent streams. An attacker wishing to exploit this vulnerability would require a client opening and closing a large number of H/2 streams. Envoy versions 1.19.1, 1.18.4, 1.17.4, 1.16.5 contain fixes to reduce time complexity of resetting HTTP/2 streams. As a workaround users may limit the number of simultaneous HTTP/2 dreams for upstream and downstream peers to a low number, i.e. 100.","status":"published","published":"2021-08-24T21:15:09.553Z","modified":"2026-06-17T03:53:36.73Z","cvss":[{"version":"3.1","score":5.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:N/A:L","level":"medium","assessor":"secondary"},{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"primary"},{"version":"2.0","score":5,"vector":"AV:N/AC:L/Au:N/C:N/I:N/A:P","level":"medium","assessor":"primary"}],"cwes":["CWE-834"],"updated_at":"2026-11-02T14:06:57.67549Z"}],"osv":[{"id":"CVE-2021-32778","description":"Envoy is an open source L7 proxy and communication bus designed for large modern service oriented architectures. In affected versions envoy’s procedure for resetting a HTTP/2 stream has O(N^2) complexity, leading to high CPU utilization when a large number of streams are reset. Deployments are susceptible to Denial of Service when Envoy is configured with high limit on H/2 concurrent streams. An attacker wishing to exploit this vulnerability would require a client opening and closing a large number of H/2 streams. Envoy versions 1.19.1, 1.18.4, 1.17.4, 1.16.5 contain fixes to reduce time complexity of resetting HTTP/2 streams. As a workaround users may limit the number of simultaneous HTTP/2 dreams for upstream and downstream peers to a low number, i.e. 100.","status":"published","published":"2021-08-24T21:15:09.553Z","modified":"2026-10-20T10:54:42.949610025Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T15:44:19.793849Z"},{"id":"RHEA-2021:4051","title":"Red Hat Enhancement Advisory: Red Hat OpenShift Service Mesh 2.1.0 RPMs","status":"published","published":"2024-09-16T06:35:17Z","modified":"2025-11-22T12:15:38Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T15:52:58.636919Z"},{"id":"BIT-envoy-2021-32778","title":"Excessive CPU utilization when closing HTTP/2 streams","description":"Envoy is an open source L7 proxy and communication bus designed for large modern service oriented architectures. In affected versions envoy’s procedure for resetting a HTTP/2 stream has O(N^2) complexity, leading to high CPU utilization when a large number of streams are reset. Deployments are susceptible to Denial of Service when Envoy is configured with high limit on H/2 concurrent streams. An attacker wishing to exploit this vulnerability would require a client opening and closing a large number of H/2 streams. Envoy versions 1.19.1, 1.18.4, 1.17.4, 1.16.5 contain fixes to reduce time complexity of resetting HTTP/2 streams. As a workaround users may limit the number of simultaneous HTTP/2 dreams for upstream and downstream peers to a low number, i.e. 100.","status":"published","published":"2024-03-06T10:58:13.992Z","modified":"2026-09-08T08:47:26.963903312Z","updated_at":"2026-11-02T15:28:29.563843Z"}]}}
