Описание
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.
A flaw was found in gRPC-Go. This vulnerability allows an unauthenticated remote attacker to exhaust process memory by sending millions of fragmented HTTP/2 DATA frames. Each fragmented frame is stored as a separate message, consuming disproportionate heap memory. This can lead to a runtime panic or out-of-memory termination, resulting in a Denial of Service (DoS).
Отчет
Red Hat has evaluated this vulnerability as having an Important severity because an unauthenticated remote attacker can exhaust memory and crash affected applications without exceeding connection flow-control windows. Within Red Hat OpenShift and containerized platforms, gRPC-Go is embedded in various internal control plane agents, monitoring exporters, and management components. Although services handling untrusted remote gRPC traffic remain susceptible to denial of service, exposure in standard cluster deployments is constrained because these interfaces typically operate across isolated internal networks or behind mutual TLS boundaries.
Меры по смягчению последствий
Mitigation for this issue is either not available or the currently available options do not meet the Red Hat Product Security criteria comprising ease of use and deployment, applicability to widespread installation base, or stability.
Затронутые пакеты
| Платформа | Пакет | Состояние | Рекомендация | Релиз |
|---|---|---|---|---|
| Multicluster Engine for Kubernetes | multicluster-engine/addon-manager-rhel9 | Affected | ||
| Multicluster Engine for Kubernetes | multicluster-engine/assisted-service-9-rhel9 | Affected | ||
| Multicluster Engine for Kubernetes | multicluster-engine/managedcluster-import-controller-rhel9 | Affected | ||
| Multicluster Engine for Kubernetes | multicluster-engine/multicloud-manager-rhel9 | Affected | ||
| Multicluster Engine for Kubernetes | multicluster-engine/placement-rhel9 | Affected | ||
| Multicluster Engine for Kubernetes | multicluster-engine/registration-operator-rhel9 | Affected | ||
| Multicluster Engine for Kubernetes | multicluster-engine/registration-rhel9 | Affected | ||
| Multicluster Engine for Kubernetes | multicluster-engine/work-rhel9 | Affected | ||
| OpenShift Pipelines | openshift-pipelines/pipelines-chains-controller-rhel9 | Affected | ||
| OpenShift Pipelines | openshift-pipelines/pipelines-cli-tkn-rhel9 | Affected |
Показывать по
Ссылки на источники
Дополнительная информация
Статус:
EPSS
7.5 High
CVSS3
Связанные уязвимости
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.
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.
gRPC-Go: Heap Memory Exhaustion (OOM) via HTTP/2 DATA Frame Fragmentation
gRPC-Go is the Go language implementation of gRPC. Prior to 1.83.1, in ...
EPSS
7.5 High
CVSS3