Netty Tcnative Boringssl Static
Monthly
netty-tcnative 2.0.83.Final and earlier can be driven into denial of service or silent TLS message corruption by ordinary TLS 1.3 traffic, because the tcn_write_to_bytebuffer BIO_write callback in ssl.c reports more bytes consumed than the caller actually asked to write. The inflation occurs when the internal side buffer (populated by queued post-handshake records such as NewSessionTicket, KeyUpdate or alerts) is non-empty at the moment a write-sink BIO_write runs, and the outcome is backend-specific: BoringSSL silently corrupts handshake or application data on the wire, an adjacent BoringSSL post-handshake path can abort the JVM process outright, and LibreSSL permanently wedges the connection's write path. The independent assessment rates this CVSS:3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:H - unauthenticated remote and requiring the coincidence of queued side-buffer data with a write-mode flush - while a public proof-of-concept reproduction is documented in the upstream advisory; it is not verified as turnkey exploit code and there is no CISA KEV confirmation of active exploitation at time of analysis.
Heap buffer overflow in netty-tcnative's custom OpenSSL BIO wrapper (all releases through 2.0.83.Final, including netty-tcnative-boringssl-static) allows a remote TLS peer to crash the JVM process by pushing handshake continuation, renegotiation, or TLS 1.3 post-handshake bytes through the internal nonApplicationBuffer ring buffer until its un-normalized write index exceeds the buffer size, after which a memcpy runs with an out-of-bounds pointer and a negative length cast to size_t. No authentication or user interaction is required (PR:N/UI:N), but reliability is limited by the CVSS 4.0 AT:P flag: the overflow only materializes when the integrating application chose a comparatively small nonApplicationBufferSize via SSL.bioNewByteBuffer and traffic arrives in write/partial-drain cycles that never fully empty the buffer. The assessed impact is availability-only (VA:H) - a deterministic process crash - with no confirmed confidentiality or integrity effect; no CISA KEV listing exists and no released working exploit code was identified at time of analysis, although the upstream advisory documents a deterministic reproduction PoC built from the public JNI API.
netty-tcnative through 2.0.83.Final passes the raw SNI server_name from the ClientHello into JNI's NewStringUTF(), which decodes modified UTF-8 rather than standard UTF-8. A remote, unauthenticated client can therefore place the overlong two-byte sequence 0xC0 0x80 in the SNI extension and have it materialize as an embedded U+0000 character inside the Java hostname string handed to SniHostNameMatcher and returned by SSL.getSniHostname(), letting the attacker influence SNI-based certificate selection, access-control decisions and logging. The assessed severity is CVSS 3.1 6.5 (AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N); the library-level corruption is unconditional, but real-world impact is gated on the integrating application actually relying on that hostname for a trust decision or re-encoding it downstream. The advisory documents a deterministic researcher reproduction against an unmodified build; no public exploit code is referenced, and there is no KEV or EPSS signal in the provided data.
netty-tcnative 2.0.83.Final and earlier can be driven into denial of service or silent TLS message corruption by ordinary TLS 1.3 traffic, because the tcn_write_to_bytebuffer BIO_write callback in ssl.c reports more bytes consumed than the caller actually asked to write. The inflation occurs when the internal side buffer (populated by queued post-handshake records such as NewSessionTicket, KeyUpdate or alerts) is non-empty at the moment a write-sink BIO_write runs, and the outcome is backend-specific: BoringSSL silently corrupts handshake or application data on the wire, an adjacent BoringSSL post-handshake path can abort the JVM process outright, and LibreSSL permanently wedges the connection's write path. The independent assessment rates this CVSS:3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:H - unauthenticated remote and requiring the coincidence of queued side-buffer data with a write-mode flush - while a public proof-of-concept reproduction is documented in the upstream advisory; it is not verified as turnkey exploit code and there is no CISA KEV confirmation of active exploitation at time of analysis.
Heap buffer overflow in netty-tcnative's custom OpenSSL BIO wrapper (all releases through 2.0.83.Final, including netty-tcnative-boringssl-static) allows a remote TLS peer to crash the JVM process by pushing handshake continuation, renegotiation, or TLS 1.3 post-handshake bytes through the internal nonApplicationBuffer ring buffer until its un-normalized write index exceeds the buffer size, after which a memcpy runs with an out-of-bounds pointer and a negative length cast to size_t. No authentication or user interaction is required (PR:N/UI:N), but reliability is limited by the CVSS 4.0 AT:P flag: the overflow only materializes when the integrating application chose a comparatively small nonApplicationBufferSize via SSL.bioNewByteBuffer and traffic arrives in write/partial-drain cycles that never fully empty the buffer. The assessed impact is availability-only (VA:H) - a deterministic process crash - with no confirmed confidentiality or integrity effect; no CISA KEV listing exists and no released working exploit code was identified at time of analysis, although the upstream advisory documents a deterministic reproduction PoC built from the public JNI API.
netty-tcnative through 2.0.83.Final passes the raw SNI server_name from the ClientHello into JNI's NewStringUTF(), which decodes modified UTF-8 rather than standard UTF-8. A remote, unauthenticated client can therefore place the overlong two-byte sequence 0xC0 0x80 in the SNI extension and have it materialize as an embedded U+0000 character inside the Java hostname string handed to SniHostNameMatcher and returned by SSL.getSniHostname(), letting the attacker influence SNI-based certificate selection, access-control decisions and logging. The assessed severity is CVSS 3.1 6.5 (AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N); the library-level corruption is unconditional, but real-world impact is gated on the integrating application actually relying on that hostname for a trust decision or re-encoding it downstream. The advisory documents a deterministic researcher reproduction against an unmodified build; no public exploit code is referenced, and there is no KEV or EPSS signal in the provided data.