{"id":"CVE-2026-84304","summary":"gRPC-Go: Heap Memory Exhaustion (OOM) via HTTP/2 DATA Frame Fragmentation","details":"gRPC-Go is the Go language implementation of gRPC. Prior to 1.83.1, internal/transport/transport.go stores each fragmented HTTP/2 DATA frame as a separate recvMsg in recvBuffer, so millions of one-byte frames can consume disproportionate heap memory even when payload bytes remain within connection and stream flow-control windows. An unauthenticated remote attacker can use concurrent multiplexed streams to exhaust process memory and cause a runtime panic or out-of-memory termination. Receive-buffer compaction is enabled by default and can be controlled temporarily with GRPC_GO_EXPERIMENTAL_ENABLE_RECEIVE_BUFFER_COMPACTION. This issue is fixed in version 1.83.1.","aliases":["GHSA-vp52-pcj8-j9qc","GO-2026-6348"],"modified":"2026-10-21T17:42:30.003694853Z","published":"2026-09-01T18:19:10.100Z","related":["SUSE-SU-2026:23506-1","SUSE-SU-2026:23546-1","SUSE-SU-2026:23548-1","SUSE-SU-2026:23688-1","SUSE-SU-2026:23708-1","SUSE-SU-2026:23729-1","SUSE-SU-2026:23730-1","SUSE-SU-2026:23736-1","SUSE-SU-2026:23739-1","SUSE-SU-2026:23831-1","SUSE-SU-2026:23852-1","SUSE-SU-2026:23855-1","SUSE-SU-2026:23863-1","SUSE-SU-2026:23864-1","SUSE-SU-2026:24150-1","SUSE-SU-2026:24213-1","SUSE-SU-2026:4062-1","SUSE-SU-2026:4125-1","SUSE-SU-2026:4175-1","SUSE-SU-2026:4178-1","SUSE-SU-2026:4206-1","SUSE-SU-2026:4270-1","SUSE-SU-2026:4272-1","SUSE-SU-2026:4292-1","SUSE-SU-2026:4293-1","SUSE-SU-2026:4308-1","SUSE-SU-2026:4388-1","SUSE-SU-2026:4389-1","SUSE-SU-2026:4392-1","SUSE-SU-2026:4444-1","SUSE-SU-2026:4628-1","openSUSE-SU-2026:11686-1","openSUSE-SU-2026:11695-1","openSUSE-SU-2026:11697-1","openSUSE-SU-2026:11700-1","openSUSE-SU-2026:11713-1","openSUSE-SU-2026:11718-1","openSUSE-SU-2026:11731-1","openSUSE-SU-2026:11732-1","openSUSE-SU-2026:11740-1","openSUSE-SU-2026:11742-1","openSUSE-SU-2026:11752-1","openSUSE-SU-2026:11828-1","openSUSE-SU-2026:11830-1","openSUSE-SU-2026:11837-1","openSUSE-SU-2026:11871-1","openSUSE-SU-2026:11881-1","openSUSE-SU-2026:11911-1","openSUSE-SU-2026:11914-1","openSUSE-SU-2026:11920-1","openSUSE-SU-2026:11925-1","openSUSE-SU-2026:12114-1","openSUSE-SU-2026:12149-1","openSUSE-SU-2026:12163-1","openSUSE-SU-2026:12186-1","openSUSE-SU-2026:21801-1","openSUSE-SU-2026:21809-1","openSUSE-SU-2026:21824-1","openSUSE-SU-2026:21834-1","openSUSE-SU-2026:21841-1","openSUSE-SU-2026:21843-1","openSUSE-SU-2026:21879-1","openSUSE-SU-2026:21882-1","openSUSE-SU-2026:21886-1","openSUSE-SU-2026:21897-1","openSUSE-SU-2026:21898-1","openSUSE-SU-2026:21927-1","openSUSE-SU-2026:21996-1","openSUSE-SU-2026:22026-1","openSUSE-SU-2026:22035-1","openSUSE-SU-2026:22064-1","openSUSE-SU-2026:22134-1","openSUSE-SU-2026:22135-1"],"database_specific":{"cwe_ids":["CWE-400"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/84xxx/CVE-2026-84304.json","cna_assigner":"GitHub_M"},"references":[{"type":"WEB","url":"https://github.com/grpc/grpc-go/releases/tag/v1.83.1"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/84xxx/CVE-2026-84304.json"},{"type":"ADVISORY","url":"https://github.com/grpc/grpc-go/security/advisories/GHSA-vp52-pcj8-j9qc"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-84304"},{"type":"FIX","url":"https://github.com/grpc/grpc-go/commit/7354d9c8debb4bcf2225bf429857078de310c176"},{"type":"FIX","url":"https://github.com/grpc/grpc-go/commit/8cfeca0e1ee5ea0980dcc320e20240fa1079ec77"},{"type":"FIX","url":"https://github.com/grpc/grpc-go/pull/9331"},{"type":"FIX","url":"https://github.com/grpc/grpc-go/pull/9333"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/grpc/grpc-go","events":[{"introduced":"0"},{"fixed":"1550d9e0cddb30ce99e61a2102e8294a49461e5e"},{"fixed":"7354d9c8debb4bcf2225bf429857078de310c176"},{"fixed":"8cfeca0e1ee5ea0980dcc320e20240fa1079ec77"}],"database_specific":{"extracted_events":[{"range":[{"introduced":"0"},{"fixed":"1.83.1"}],"source":"AFFECTED_FIELD","strategy":"StringRangeExpression"},{"source":"REFERENCES_COMMIT","range":[{"fixed":"7354d9c8debb4bcf2225bf429857078de310c176"}]},{"source":"REFERENCES_COMMIT","range":[{"fixed":"8cfeca0e1ee5ea0980dcc320e20240fa1079ec77"}]},{"source":"REFERENCES_TAG","original_tag":"v1.83.1","range":[{"fixed":"1550d9e0cddb30ce99e61a2102e8294a49461e5e"}]}]}}],"versions":["v1.85.0-dev","v1.83.0","v1.84.0-dev","v1.83.0-dev","cmd/protoc-gen-go-grpc/v1.6.2","v1.82.0-dev","v1.81.0-dev","cmd/protoc-gen-go-grpc/v1.6.1","v1.80.0-dev","v1.79.0-dev","cmd/protoc-gen-go-grpc/v1.6.0","v1.78.0-dev","v1.77.0-dev","v1.76.0-dev","v1.75.0-dev","v1.74.0-dev","v1.73.0-dev","v1.72.0-dev","1.69.3","v1.71.0-dev","v1.69.0","v1.70.0-dev","v1.69.0-dev","v1.68.0-dev","v1.67.0-dev","cmd/protoc-gen-go-grpc/v1.5.1","cmd/protoc-gen-go-grpc/v1.5.0","security/advancedtls/v1.0.0","v1.66.0-dev","cmd/protoc-gen-go-grpc/v1.4.0","v1.65.0-dev","gcp/observability/v1.0.1","v1.61.0-dev","v1.60.0-dev","v1.59.0-dev","v1.58.0-dev","v1.57.0-dev","v1.56.0-dev","gcp/observability/v1.0.0","stats/opencensus/v1.0.0","v1.55.0-dev","cmd/protoc-gen-go-grpc/v1.3.0","v1.53.0-dev","v1.52.0-dev","v1.51.0-dev","v1.50.0-dev","v1.49.0-dev","v1.48.0-dev","v1.47.0-dev","v1.46.0-dev","v1.45.0-dev","cmd/protoc-gen-go-grpc/v1.2.0","v1.44.0-dev","v1.43.0-dev","v1.42.0-dev","v1.41.0-dev","v1.40.0-dev","v1.39.0-dev","v1.38.0-dev","v1.37.0-dev","cmd/protoc-gen-go-grpc/v1.1.0","v1.36.0-dev","v1.35.0-dev","cmd/protoc-gen-go-grpc/v1.0.1","v1.34.0-dev","cmd/protoc-gen-go-grpc/v1.0.0","v1.33.0-dev","v1.32.0-dev","v1.31.0-dev","v1.30.0-dev.1","v1.30.0-dev","v1.29.0-dev","v1.28.0-pre","v1.27.0-pre","v1.2.0","v1.0.5","v1.0.4","v1.0.3","v1.0.2","v1.0.1-GA","v1.0.0"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-84304.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N"}]}