GHSA-c4c3-7fpv-j4q5: Maven/io.netty:netty-handler vulnerability

Published Sep 8, 2026
·
Updated

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.SSLRECORDHEADERLENGTH + 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.

Affected Software

2 affected componentsFixes available
maven/io.netty:netty-handler<=4.1.136.Final
4.1.137.Final
maven/io.netty:netty-handler>=4.2.0.Final<=4.2.16.Final
4.2.17.Final

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade maven/io.netty:netty-handler to a version that resolves this vulnerability.

    Fixed in 4.1.137.Final
  2. Upgrade

    Upgrade maven/io.netty:netty-handler to a version that resolves this vulnerability.

    Fixed in 4.2.17.Final

Event History

Sep 8, 2026
Advisory Published
via GitHub·06:16 PM
Data Sourced
via GitHub·06:16 PM
DescriptionWeaknessAffected Software

Frequently Asked Questions

1

Which deployments can turn this into an unauthenticated mTLS bypass?

The bypass requires mTLS to be enforced solely by the SNI-selected SslContext, with the selected route requiring client authentication while the default SslContext does not. If mTLS is enforced independently of per-SNI context selection, the described escalation condition is not met.

2

What does an attacker need to send to trigger the fallback?

An attacker needs to send a fragmented TLS ClientHello where the handshake header spans TLS records and the first record contains fewer than four bytes of handshake payload. This causes a parsing exception that results in selection of the default SslContext.

3

How can we determine whether our configuration is exposed?

Review whether client authentication is configured only on per-SNI SslContexts and whether the default SslContext permits connections without client certificates. A deployment matching both conditions is exposed to the unauthenticated mTLS-bypass scenario.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203