GHSA-c4c3-7fpv-j4q5
Netty: SNI Routing Bypass via Fragmented TLS ClientHello Causing Fallback to Default SslContext
Quick fix
GHSA-c4c3-7fpv-j4q5 — io.netty:netty-handler: upgrade to the fixed version with the command below.
# pom.xml: bump <version>4.2.17.Final</version> for io.netty:netty-handlerDetails
### 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#decode` the 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:
```java if (handshakeLength == -1) { if (readerIndex + 4 > endOffset) { // Need more data to read HandshakeType and handshakeLength (4 bytes) return; } ```
When the first record's payload is < 4 bytes, `handshakeLength = in.getUnsignedMedium(readerIndex + SslUtils.SSL_RECORD_HEADER_LENGTH + 1);` leads to `IndexOutOfBoundsException `. That is caught by the generic `catch (Exception)` block, which calls `select(ctx, null)` - this is the default `SslContext`. 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: - mTLS is enforced solely via per-SNI SslContext (clientAuth=REQUIRE) - the default/fallback SslContext is permissive (clientAuth=NONE/OPTIONAL) - no secondary peer-certificate verification exists at the application layer.
Are you affected?
Enter the version of the package you're using.
Affected packages
4.2.0.FinalFixed in: 4.2.17.Final# pom.xml: bump <version>4.2.17.Final</version> for io.netty:netty-handler0Fixed in: 4.1.137.Final# pom.xml: bump <version>4.1.137.Final</version> for io.netty:netty-handlerReferences
- https://github.com/netty/netty/security/advisories/GHSA-c4c3-7fpv-j4q5[WEB]
- https://nvd.nist.gov/vuln/detail/CVE-2026-75595[ADVISORY]
- https://github.com/netty/netty/pull/17213[WEB]
- https://github.com/netty/netty/pull/17217[WEB]
- https://github.com/netty/netty/commit/1b5abc6443b63726c72cdd285af2feb7ddbb8ff7[WEB]
- https://github.com/netty/netty/commit/9e0519239108a69b7e9bbc5e9182ee139a0d7961[WEB]
- https://github.com/netty/netty[PACKAGE]
- https://github.com/netty/netty/releases/tag/netty-4.1.137.Final[WEB]
- https://github.com/netty/netty/releases/tag/netty-4.2.17.Final[WEB]