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:
The product allocates memory based on an untrusted, large size value, but it does not ensure that the size is within expected limits, allowing arbitrary amounts of memory to be allocated.
Name | Vendor | Start Version | End Version |
---|---|---|---|
Grpc | Grpc | * | 1.53.2 (excluding) |
Grpc | Grpc | 1.54.0 (including) | 1.54.3 (excluding) |
Grpc | Grpc | 1.55.0 (including) | 1.55.2 (excluding) |
Grpc | Grpc | 1.56.0 (including) | 1.56.2 (excluding) |
Red Hat Enterprise Linux 9 | RedHat | rhc-worker-playbook-0:0.1.10-1.el9_5 | * |
Grpc | Ubuntu | bionic | * |
Grpc | Ubuntu | lunar | * |
Grpc | Ubuntu | mantic | * |
Grpc | Ubuntu | trusty | * |
Grpc | Ubuntu | xenial | * |