CVE-2023-32731: Connection confusion in gRPC
(updated )
When gRPC HTTP2 stack raised a header size exceeded error, it skipped parsing the rest of the HPACK frame. This caused any HPACK table mutations to also be skipped, resulting in a desynchronization of HPACK tables between sender and receiver. If leveraged, say, between a proxy and a backend, this could lead to requests from the proxy being interpreted as containing headers from different proxy clients - leading to an information leak that can be used for privilege escalation or data exfiltration.
References
- github.com/advisories/GHSA-cfgp-2977-2fmm
- github.com/grpc/grpc/commit/29d8beee0ac2555773b2a2dda5601c74a95d6c10
- github.com/grpc/grpc/commit/65a2a895afaf1d2072447b9baf246374b182a946
- github.com/grpc/grpc/issues/33463
- github.com/grpc/grpc/pull/32309
- github.com/grpc/grpc/pull/33005
- github.com/grpc/grpc/releases/tag/v1.53.1
- github.com/grpc/grpc/releases/tag/v1.54.2
- github.com/rubysec/ruby-advisory-db/blob/master/gems/grpc/CVE-2023-32731.yml
- nvd.nist.gov/vuln/detail/CVE-2023-32731
Code Behaviors & Features
Detect and mitigate CVE-2023-32731 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →