Skip to content

netty: Fix client-initiated stream limit bypass in NettyServerHandler - #12933

Merged
kannanjgithub merged 1 commit into
grpc:masterfrom
kannanjgithub:netty-maxstreams-enforce
Jul 28, 2026
Merged

netty: Fix client-initiated stream limit bypass in NettyServerHandler#12933
kannanjgithub merged 1 commit into
grpc:masterfrom
kannanjgithub:netty-maxstreams-enforce

Conversation

@kannanjgithub

Copy link
Copy Markdown
Contributor

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

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 added the TODO:backport PR needs to be backported. Removed after backport complete label Jul 27, 2026
@GuipaiQigong111

Copy link
Copy Markdown

When is this fix expected to be released?

@kannanjgithub

Copy link
Copy Markdown
Contributor Author

We will make a patch release 1.83.1 with the fix.

@kannanjgithub
kannanjgithub merged commit 56205f9 into grpc:master Jul 28, 2026
17 of 18 checks passed
@kannanjgithub
kannanjgithub deleted the netty-maxstreams-enforce branch July 28, 2026 13:03
kannanjgithub added a commit that referenced this pull request Jul 29, 2026
… (v1.83.x backport) (#12942)

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
kannanjgithub added a commit that referenced this pull request Jul 29, 2026
… (v1.82.x backport) (#12941)

Backport of #12933 to v1.82.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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

TODO:backport PR needs to be backported. Removed after backport complete

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Security][grpc-java] CVE-2026-47244 may remain unenforced in NettyServerHandler

3 participants