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.
{
"cpe": [
"cpe:2.3:a:envoyproxy:envoy:1.0.0:*:*:*:*:*:*:*",
"cpe:2.3:a:envoyproxy:envoy:1.1.0:*:*:*:*:*:*:*",
"cpe:2.3:a:envoyproxy:envoy:1.2.0:*:*:*:*:*:*:*",
"cpe:2.3:a:envoyproxy:envoy:1.3.0:*:*:*:*:*:*:*",
"cpe:2.3:a:envoyproxy:envoy:1.4.0:*:*:*:*:*:*:*",
"cpe:2.3:a:envoyproxy:envoy:1.5.0:*:*:*:*:*:*:*",
"cpe:2.3:a:envoyproxy:envoy:1.6.0:*:*:*:*:*:*:*",
"cpe:2.3:a:envoyproxy:envoy:1.7.0:*:*:*:*:*:*:*",
"cpe:2.3:a:envoyproxy:envoy:1.7.1:*:*:*:*:*:*:*",
"cpe:2.3:a:envoyproxy:envoy:1.8.0:*:*:*:*:*:*:*",
"cpe:2.3:a:envoyproxy:envoy:1.9.0:*:*:*:*:*:*:*",
"cpe:2.3:a:envoyproxy:envoy:1.9.1:*:*:*:*:*:*:*",
"cpe:2.3:a:envoyproxy:envoy:1.10.0:*:*:*:*:*:*:*",
"cpe:2.3:a:envoyproxy:envoy:1.11.0:*:*:*:*:*:*:*",
"cpe:2.3:a:envoyproxy:envoy:1.11.1:*:*:*:*:*:*:*",
"cpe:2.3:a:envoyproxy:envoy:1.11.2:*:*:*:*:*:*:*"
],
"extracted_events": [
{
"introduced": "0"
},
{
"last_affected": "1.0.0"
},
{
"last_affected": "1.1.0"
},
{
"last_affected": "1.2.0"
},
{
"last_affected": "1.3.0"
},
{
"last_affected": "1.4.0"
},
{
"last_affected": "1.5.0"
},
{
"last_affected": "1.6.0"
},
{
"last_affected": "1.7.0"
},
{
"last_affected": "1.7.1"
},
{
"last_affected": "1.8.0"
},
{
"last_affected": "1.9.0"
},
{
"last_affected": "1.9.1"
},
{
"last_affected": "1.10.0"
},
{
"last_affected": "1.11.0"
},
{
"last_affected": "1.11.1"
},
{
"last_affected": "1.11.2"
}
],
"source": "CPE_FIELD"
}