CVE-2021-39162 Incorrect handling of H2 GOAWAY + SETTINGS frames
Attackers with control over upstream servers can cause a denial of service in Pomerium by sending specific HTTP/2 frames.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2021-39162?
CVE-2021-39162 is a high-severity denial of service vulnerability in Envoyproxy Envoy, published on 9 Sep 2021. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
Pomerium is an open source identity-aware access proxy. Envoy, which Pomerium is based on, can abnormally terminate if an H/2 GOAWAY and SETTINGS frame are received in the same IO event. This can lead to a DoS in the presence of untrusted *upstream* servers. 0.15.1 contains an upgraded envoy binary with this vulnerability patched. If only trusted upstreams are configured, there is not substantial risk of this condition being triggered.
Weakness: CWE-754
Which versions are affected by CVE-2021-39162?
4 open source packages ship an affected version, including envoy and github.com/pomerium/pomerium. It affects 2 products.
| Package | Affected | Fixed in |
|---|---|---|
envoy Bitnami | All versions | 1.18.4, 1.19.1 |
github.com/pomerium/pomerium Go | All versions | 0.15.1 |
github.com/pomerium/pomerium Go | All versions | 0.15.1 |
github.com/pomerium/pomerium Go | All versions | 0.15.1 |
Products include Envoyproxy Envoy, Pomerium Pomerium.
How do I fix CVE-2021-39162?
Upgrade envoy to a fixed version for your release line: 1.18.4 or 1.19.1.
Upgrade, then put limits on request size, rate and nesting depth so one client cannot exhaust the service. More about Denial of service.
Is CVE-2021-39162 being exploited?
There is no known exploitation of CVE-2021-39162 in the wild and no public exploit code.
Other vulnerabilities in Envoyproxy Envoy
Sources
Also known as BIT-envoy-2021-39162, GHSA-gjcg-vrxg-xmgv, GO-2022-0933.