Upon receiving each incoming request header data, Envoy will iterate over existing request headers to verify that the total size of the headers stays below a maximum limit. The implementation in versions 1.10.0 through 1.11.1 for HTTP/1.x traffic and all versions of Envoy for HTTP/2 traffic had O(n^2) performance characteristics. A remote attacker may craft a request that stays below the maximum request header size but consists of many thousands of small headers to consume CPU and result in a denial-of-service attack.
https://github.com/envoyproxy/envoy/issues/8520
https://github.com/envoyproxy/envoy/commits/master
https://github.com/envoyproxy/envoy/commit/afc39bea36fd436e54262f150c009e8d72db5014