CVE-2023-32731
Vulnerability Summary
Timeline
Description
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. We recommend upgrading beyond the commit contained in https://github.com/grpc/grpc/pull/33005 https://github.com/grpc/grpc/pull/33005
CVSS Metrics
- v3.1•HIGH•Score: 7.4CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:H
- v3.1•HIGH•Score: 7.5CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
EPSS Trends
Current EPSS score: 0.07%• Percentile: 23%
Techniques & Countermeasures
- CWE-440•Expected Behavior Violation
A feature, API, or function does not perform according to its specification.
Affected Systems
- RubyGems•grpc
≥ 1.53.0, < 1.53.1 | ≥ 1.54.0, < 1.54.2
- google•grpc
≥ 1.53, ≤ 1.54
- grpc•grpc
≥ 1.53.0, < 1.55.0
- io.grpc•grpc-protobuf
≥ 1.53.0, < 1.53.1 | ≥ 1.54.0, < 1.54.2
- PyPI•grpcio
≥ 1.53.0, < 1.53.1 | ≥ 1.54.0, < 1.54.2
References (9)
- https://github.com/grpc/grpc/pull/32309
- https://github.com/grpc/grpc/pull/33005
- https://nvd.nist.gov/vuln/detail/CVE-2023-32731
- https://github.com/grpc/grpc/issues/33463
- https://github.com/grpc/grpc/commit/29d8beee0ac2555773b2a2dda5601c74a95d6c10
- https://github.com/grpc/grpc/commit/65a2a895afaf1d2072447b9baf246374b182a946
- https://github.com/grpc/grpc/releases/tag/v1.53.1
- https://github.com/grpc/grpc/releases/tag/v1.54.2
- https://github.com/rubysec/ruby-advisory-db/blob/master/gems/grpc/CVE-2023-32731.yml