gRPC contains a vulnerability that allows hpack table accounting errors could lead to unwanted disconnects between clients and servers in exceptional cases/ Three vectors were found that allow the following DOS attacks:
The unbounded CPU consumption is down to a copy that occurred per-input-block in the parser, and because that could be unbounded due to the memory copy bug we end up with an O(n^2) parsing loop, with n selected by the client.
The unbounded memory buffering bugs:
{
"unresolved_ranges": [
{
"source": "CPE_FIELD",
"extracted_events": [
{
"introduced": "1.55.0"
},
{
"fixed": "1.55.2"
}
],
"cpe": "cpe:2.3:a:grpc:grpc:*:*:*:*:*:-:*:*"
}
]
}{
"source": "CPE_FIELD",
"extracted_events": [
{
"introduced": "0"
},
{
"fixed": "1.53.2"
},
{
"introduced": "1.54.0"
},
{
"fixed": "1.54.3"
},
{
"introduced": "1.56.0"
},
{
"fixed": "1.56.2"
}
],
"cpe": "cpe:2.3:a:grpc:grpc:*:*:*:*:*:-:*:*"
}