| Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
|---|---|---|---|
| io.grpc:grpc-protobuf | maven | < 1.53.0 | 1.53.0 |
| grpcio | pip | < 1.53.0 | 1.53.0 |
| grpc | rubygems | < 1.53.0 | 1.53.0 |
The vulnerability stems from how header sizes were calculated for specific metadata keys. The commit 2485fa9 modified the size calculation to use EncodedSizeOfKey instead of direct Encode().size() calls, indicating the original implementation mishandled invalid headers. The Encode template in hpack_parser.cc was vulnerable because it didn't properly account for invalid header values (returning 0 size), leading to incorrect total header size tracking. When the total size exceeded 8KB due to this miscalculation, it triggered an assertion. The specialized EncodedSizeOfKey functions for TeMetadata, HttpSchemeMetadata, and GrpcLbClientStatsMetadata in metadata_batch.h were central to this miscalculation, as they returned 0 for invalid cases, enabling the size tracking error.
A Semantic Attack on Google Gemini - Read the Latest Research