GitHub Advisoryadvisory · Maven, PyPI, RubyGems
GHSA-cfgp-2977-2fmm Connection confusion in gRPC
HIGH
Official page ↗
- Aliases
- CVE-2023-32731
- Ecosystem
- Maven, PyPI, RubyGems
- Packages
- io.grpc:grpc-protobuf, grpcio, grpc
- Severity
- High
- CVSS vector
- CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:H
- Weaknesses
- CWE-440
- Reviewed
- 2023-07-05
Affected packages
• Maven io.grpc:grpc-protobuf: >= 1.53.0, < 1.53.1 → fixed in 1.53.1
• PyPI grpcio: >= 1.53.0, < 1.53.1 → fixed in 1.53.1
• RubyGems grpc: >= 1.53.0, < 1.53.1 → fixed in 1.53.1
• PyPI grpcio: >= 1.54.0, < 1.54.2 → fixed in 1.54.2
• RubyGems grpc: >= 1.54.0, < 1.54.2 → fixed in 1.54.2
• Maven io.grpc:grpc-protobuf: >= 1.54.0, < 1.54.2 → fixed in 1.54.2
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.
Related
Alias · CVE (1)
- CVE-2023-32731 When gRPC HTTP2 stack raised a header size exceeded error, it skipped parsing the rest of the HPACK frame. vulnerability
Weakness · CWE (1)
- CWE-440 Expected Behavior Violation weakness
References
- https://nvd.nist.gov/vuln/detail/CVE-2023-32731 advisory
- https://github.com/grpc/grpc/issues/33463 web
- https://github.com/grpc/grpc/pull/32309 web
- https://github.com/grpc/grpc/pull/33005 web
- https://github.com/grpc/grpc/commit/29d8beee0ac2555773b2a2dda5601c74a95d6c10 web
- https://github.com/grpc/grpc/commit/65a2a895afaf1d2072447b9baf246374b182a946 web
- https://github.com/grpc/grpc/releases/tag/v1.53.1 web
- https://github.com/grpc/grpc/releases/tag/v1.54.2 web
- https://github.com/rubysec/ruby-advisory-db/blob/master/gems/grpc/CVE-2023-32731.yml web