fix(deps): update dependency io.netty:netty-handler to v4.1.137.final [security] - #368
Open
renovate[bot] wants to merge 1 commit into
Open
renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
renovate
Bot
requested review from
NicoPiel,
jonbartels,
kpalang,
mgaffigan and
ssrowe
July 24, 2026 13:08
Test Results0 tests 0 ✅ 0s ⏱️ Results for commit 661e124. ♻️ This comment has been updated with latest results. |
jonbartels
previously approved these changes
Jul 24, 2026
mgaffigan
previously approved these changes
Jul 24, 2026
NicoPiel
previously approved these changes
Jul 24, 2026
renovate
Bot
force-pushed
the
renovate/maven-io.netty-netty-handler-vulnerability
branch
from
July 24, 2026 23:05
d08ac1b to
e7f5645
Compare
renovate
Bot
dismissed stale reviews from jonbartels, mgaffigan, and NicoPiel
via
July 24, 2026 23:17
8d0bbd7
renovate
Bot
force-pushed
the
renovate/maven-io.netty-netty-handler-vulnerability
branch
from
July 24, 2026 23:17
e7f5645 to
8d0bbd7
Compare
mgaffigan
previously approved these changes
Jul 25, 2026
renovate
Bot
force-pushed
the
renovate/maven-io.netty-netty-handler-vulnerability
branch
from
July 27, 2026 13:24
8d0bbd7 to
ff7aba8
Compare
renovate
Bot
force-pushed
the
renovate/maven-io.netty-netty-handler-vulnerability
branch
3 times, most recently
from
July 31, 2026 00:32
b69c4a6 to
5f0a754
Compare
renovate
Bot
force-pushed
the
renovate/maven-io.netty-netty-handler-vulnerability
branch
from
August 16, 2026 00:11
5f0a754 to
0f0fd5f
Compare
renovate
Bot
force-pushed
the
renovate/maven-io.netty-netty-handler-vulnerability
branch
from
August 26, 2026 15:55
0f0fd5f to
8251883
Compare
renovate
Bot
force-pushed
the
renovate/maven-io.netty-netty-handler-vulnerability
branch
from
September 19, 2026 15:54
8251883 to
5590bb6
Compare
Contributor
Author
|
renovate
Bot
force-pushed
the
renovate/maven-io.netty-netty-handler-vulnerability
branch
from
September 24, 2026 15:32
5590bb6 to
661e124
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
4.1.119.Final→4.1.137.FinalNetty has an IPv6 Subnet Filter Bypass via Incorrect Comparator Masking
CVE-2026-44249 / GHSA-3qp7-7mw8-wx86
More information
Details
Summary
An attacker can bypass IPv6 subnet rules due to an incorrect masking operation in IpSubnetFilterRule.compareTo(). Valid public IP addresses can bypass the restrictions.
Details
io.netty.handler.ipfilter.IpSubnetFilterRule#compareTo(java.net.InetSocketAddress)method performs a bitwise AND between the incoming IP address and the configured networkAddress, instead of the subnetMask.Impact
Access Control Bypass. Attacker can bypass IpSubnetFilter IPv6 access controls.
Severity
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:HReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Netty: Wrapping plain trust manager silently disables hostname verification
CVE-2026-50010 / GHSA-c653-97m9-rcg9
More information
Details
SimpleTrustManagerFactory.engineGetTrustManagers() and related paths wrap any user-supplied plain X509TrustManager in X509TrustManagerWrapper, which extends X509ExtendedTrustManager but implements the 3-arg checkServerTrusted(chain, authType, SSLEngine) by discarding the SSLEngine and calling the 2-arg delegate. Because the object now IS an X509ExtendedTrustManager, neither SunJSSE's internal AbstractTrustManagerWrapper nor Netty's own OpenSslX509TrustManagerWrapper will re-wrap it to add endpoint-identification. Consequently, even though Netty 4.2 sets endpointIdentificationAlgorithm="HTTPS" by default, a client built with
SslContextBuilder.forClient().trustManager(somePlainX509TrustManager)performs no hostname verification at all.Severity
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:NReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Netty: SNI handler pre-allocates up to 16 MiB from nine attacker bytes
CVE-2026-45416 / GHSA-x4gw-5cx5-pgmh
More information
Details
SslClientHelloHandler.decode() reads the 24-bit TLS handshake length and, when the ClientHello does not fit in the first record, eagerly allocates
ctx.alloc().buffer(handshakeLength)(line 161). The guard at line 140 ishandshakeLength > maxClientHelloLength && maxClientHelloLength != 0, and the commonly-used SniHandler/AbstractSniHandler constructors (SniHandler(Mapping), SniHandler(AsyncMapping), AbstractSniHandler()) pass maxClientHelloLength=0 and handshakeTimeoutMillis=0, so the length guard is disabled and no timeout is scheduled. A 16 MiB request exceeds the default pooled chunk size and becomes a huge/unpooled allocation performed immediately. The buffer is retained in the handler until the channel closes.Severity
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:HReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Netty: SNI Routing Bypass via Fragmented TLS ClientHello Causing Fallback to Default SslContext
CVE-2026-75595 / GHSA-c4c3-7fpv-j4q5
More information
Details
Summary
A fragmented TLS ClientHello whose handshake header spans multiple records makes Netty silently fall back to the default SslContext; where per-SNI selection is the sole mTLS gate, an unauthenticated attacker can bypass the route's mTLS requirement.
Details
In
io.netty.handler.ssl.SslClientHelloHandler#decodethe guard that should wait for the 4-byte handshake header checks the wrong offset - it ignores the 5-byte record header that precedes it - and therefore never fires:When the first record's payload is < 4 bytes,
handshakeLength = in.getUnsignedMedium(readerIndex + SslUtils.SSL_RECORD_HEADER_LENGTH + 1);leads toIndexOutOfBoundsException. That is caught by the genericcatch (Exception)block, which callsselect(ctx, null)- this is the defaultSslContext. Fallback to default on parse failure is a problem when per-SNI selection is the sole mTLS gate.Impact
SNI routing bypass. Escalates to an unauthenticated mTLS bypass only when:
Severity
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:NReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Netty: Fragmented ClientHello records trigger quadratic pre-handshake reassembly in default SNI parsing
CVE-2026-75596 / GHSA-fccg-mwvh-qqg4
More information
Details
Summary
Netty's default SNI entrypoint reparses and recopies previously received ClientHello fragments on every additional TLS handshake record. A remote peer can send a small first record that advertises a large ClientHello length and then drip the body in many tiny records, causing superlinear (quadratic) CPU work before the handshake completes. With 4095 one-byte fragments, the handler recopies 8,386,560 bytes from only 24,579 bytes on the wire — a 341× amplification ratio.
Affected Entrypoints
io.netty.handler.ssl.SniHandler— default constructorsio.netty.handler.ssl.SslClientHelloHandler— pre-handshake ClientHello aggregation pathVulnerable Code Locations
handler/src/main/java/io/netty/handler/ssl/SniHandler.java:85handler/src/main/java/io/netty/handler/ssl/SslClientHelloHandler.java:75(decode entry)handler/src/main/java/io/netty/handler/ssl/SslClientHelloHandler.java:165(handshakeBuffer.clear)handler/src/main/java/io/netty/handler/ssl/SslClientHelloHandler.java:174(writeBytes re-copy)codec-base/src/main/java/io/netty/handler/codec/ByteToMessageDecoder.java:294(cumulation retention)Exploit Path
Impact
SniHandlerfor TLS termination (the default SNI path)Credits
Found by a security research team from the University of Sydney, focusing on detecting open source software vulnerabilities.
Liyi Zhou: https://lzhou1110.github.io/
Ziyue Wang: https://zyy0530.github.io/
Strick: https://str1ckl4nd.github.io/
Maurice: https://maurice.busystar.org/
Chenchen Yu: https://7thparkk.github.io/
Severity
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:NReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Configuration
📅 Schedule: (in timezone America/New_York)
🚦 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.