Skip to content

netty: Fix client-initiated stream limit bypass in NettyServerHandler (v1.83.x backport) - #12942

Merged
kannanjgithub merged 1 commit into
grpc:v1.83.xfrom
kannanjgithub:backport-1.83-netty-maxstreams-enforce
Jul 29, 2026
Merged

netty: Fix client-initiated stream limit bypass in NettyServerHandler (v1.83.x backport)#12942
kannanjgithub merged 1 commit into
grpc:v1.83.xfrom
kannanjgithub:backport-1.83-netty-maxstreams-enforce

Conversation

@kannanjgithub

Copy link
Copy Markdown
Contributor

Backport of #12933 to v1.83.x.

Configure connection.remote().maxActiveStreams(maxStreams) directly upon DefaultHttp2Connection initialization.
Because NettyServerHandler instantiates DefaultHttp2Connection directly rather than using Netty's AbstractHttp2ConnectionHandlerBuilder, it missed Netty's built-in CVE-2026-47244 patch. This left a pre-handshake window where the server's local connection allowed up to Integer.MAX_VALUE active client-initiated streams until a SETTINGS_ACK was received. Enforcing the limit proactively at startup closes this vulnerability window and prevents client-initiated stream floods / resource exhaustion.

Fixes #12930

…grpc#12933)

Configure connection.remote().maxActiveStreams(maxStreams) directly upon
`DefaultHttp2Connection` initialization.
Because `NettyServerHandler` instantiates `DefaultHttp2Connection`
directly rather than using Netty's
`AbstractHttp2ConnectionHandlerBuilder`, it missed Netty's built-in
CVE-2026-47244 patch. This left a pre-handshake window where the
server's local connection allowed up to Integer.MAX_VALUE active
client-initiated streams until a SETTINGS_ACK was received. Enforcing
the limit proactively at startup closes this vulnerability window and
prevents client-initiated stream floods / resource exhaustion.

Fixes grpc#12930
@kannanjgithub
kannanjgithub merged commit e1f2dbd into grpc:v1.83.x Jul 29, 2026
17 of 18 checks passed
@kannanjgithub
kannanjgithub deleted the backport-1.83-netty-maxstreams-enforce branch July 29, 2026 11:29
halibobo1205 added a commit to halibobo1205/java-tron that referenced this pull request Aug 25, 2026
1. bump grpcVersion to 1.83.1 to pick up the upstream fix for
   grpc/grpc-java#12930 (PR grpc/grpc-java#12942), which enforces
   connection.remote().maxActiveStreams(maxStreams) at handler startup
2. drop GrpcNettyMaxConcurrentStreamsLimiter, the local protocol-negotiator
   shim that applied the same limit while 1.83.0 left the remote endpoint
   unbounded until the client acknowledged SETTINGS
halibobo1205 added a commit to halibobo1205/java-tron that referenced this pull request Aug 26, 2026
1. bump grpcVersion to 1.83.1 to pick up the upstream fix for
   grpc/grpc-java#12930 (PR grpc/grpc-java#12942), which enforces
   connection.remote().maxActiveStreams(maxStreams) at handler startup
2. drop GrpcNettyMaxConcurrentStreamsLimiter, the local protocol-negotiator
   shim that applied the same limit while 1.83.0 left the remote endpoint
   unbounded until the client acknowledged SETTINGS
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants