fix: update module google.golang.org/grpc to v1.83.1 [security] - #903
fix: update module google.golang.org/grpc to v1.83.1 [security]#903renovate-bot wants to merge 2 commits into
Conversation
ℹ️ Artifact update noticeFile name: benchmarks/go.modIn order to perform the update(s) described in the table above, Renovate ran the
Details:
File name: go.modIn order to perform the update(s) described in the table above, Renovate ran the
Details:
File name: snippets/go.modIn order to perform the update(s) described in the table above, Renovate ran the
Details:
File name: spannerlib/go.modIn order to perform the update(s) described in the table above, Renovate ran the
Details:
|
There was a problem hiding this comment.
Code Review
This pull request updates several Go dependencies across multiple modules in the repository, including the root, benchmarks, snippets, and spannerlib directories. Specifically, it upgrades google.golang.org/grpc to v1.83.1, cel.dev/expr to v0.25.2, github.com/spiffe/go-spiffe/v2 to v2.7.0, and various OpenTelemetry GCP detector packages to their latest versions, along with updating their corresponding go.sum checksum files. I have no feedback to provide as there are no review comments or issues identified in these dependency updates.
Edited/Blocked NotificationRenovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR. You can manually request rebase by checking the rebase/retry box above. |
This PR contains the following updates:
v1.82.1→v1.83.1Warning
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
gRPC-Go: Heap Memory Exhaustion (OOM) via HTTP/2 DATA Frame Fragmentation
CVE-2026-84304 / GHSA-vp52-pcj8-j9qc
More information
Details
Impact
An unauthenticated remote attacker can initiate a gRPC stream and purposefully fragment their payload into millions of tiny (e.g., 1-byte) HTTP/2 DATA frames. Even if the total payload volume falls within the configured connection and stream flow-control windows, each independent fragment incurs memory overhead due to internal tracking structures and queue allocation.
Repeated fragmentation massively inflates the heap space consumed by the stream. An attacker multiplexing multiple concurrent streams can exhaust the memory bounds of the runtime, forcing a runtime panic or OutOfMemory condition and leading to a remote Denial of Service (DoS).
Patches
The change to fix this issue is merged in
masterand a patch release, 1.83.1, has been published that contains this fix.Workarounds
This vulnerability is mitigated by implementing receive buffer compaction. Consecutive small data buffers are automatically coalesced into larger buffers from a shared pool once the overhead is perceived to be excessive relative to actual payload data, drastically minimizing per-frame memory overheads.
This behavior is enabled by default. A temporary escape hatch is provided via the environment variable
GRPC_GO_EXPERIMENTAL_ENABLE_RECEIVE_BUFFER_COMPACTION=falseto disable the feature if unforeseen issues arise, but it will be removed in a future release.Severity
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Release Notes
grpc/grpc-go (google.golang.org/grpc)
v1.83.1: Release 1.83.1Compare Source
Security
PrincipalorPermissionrules with:schemeorgrpc-prefixed header matchers were not rejected, which could cause DENY rules to fail open. (#9258)hostheader matcher was not being replaced with:authorityin nestedPrincipalorPermissionrules. (#9258)X-Role, matched no header, which could cause DENY rules to fail open. (#9332):schemeorgrpc-prefixed header matcher was accepted when its name was not lowercase. (#9332)Hostheader matcher was not replaced with:authority. (#9332)Performance
v1.83.0: Release 1.83.0Compare Source
Security
GRPC_GO_EXPERIMENTAL_CONTROL_BUFFER_THROTTLE_LIMIT.MetadataandRequestedServerNamepermissions matcher fields. If present in a DENY rule, previously these would be ignored and fail-open.NotRule/NotIdpermissions.source_ipprincipal identifier by treating it as equivalent todirect_remote_ip.exact_match,prefix_match, orsuffix_matchstrings. (#9223)New Features
force-xdstarget URI query parameter. (#9133)OnPolicyUpdatecallback toFileWatcherOptionsto notify when an authz policy is loaded or updated. (#9142)GRPC_EXPERIMENTAL_XDS_GCP_AUTHENTICATION_FILTER=true. (#9119)GRPC_EXPERIMENTAL_XDS_HTTP_CONNECT=true. (#9151)contains_matchin route header matchers. (#9223)Bug Fixes
GOOS=plan9), broken since v1.81.0. (#9255)v1.82.2: Release 1.82.2Compare Source
Security
:authorityandHostheaders with HTTP 400 and statusInternal. (#9365)Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.