Skip to main content

netty-tcnative CVE-2026-116540

| EUVDEUVD-2026-109910 HIGH
Use After Free (CWE-416)
2026-10-26 VulnCheck GHSA-fgcj-53j7-r6vq
8.2
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Connect to TLS server with session tickets enabled
  2. Delivery
    Initiate handshake invoking ssl_tlsext_ticket_key_cb
  3. Exploit
    Server concurrently rotates keys, freeing shared key array
  4. Execution
    Callback dereferences stale pointer into freed HMAC key memory
  5. Impact
    Crash server process (SIGSEGV / ticket corruption, DoS)

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Memory lifecycle management
MITRE ATT&CK

2 techniques across 2 tactics: Execution, Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires all of: (1) netty-tcnative built/linked against OpenSSL 3.0 or newer - the OPENSSL_VERSION_NUMBER >= 0x30000000L EVP_MAC code path; builds against OpenSSL < 3.0 use HMAC_Init_ex and are NOT affected; (2) TLS session tickets enabled, which is the library's default; and (3) the server operator actively performing in-place session-ticket-key rotation via SSLContext.setSessionTicketKeys0() concurrently with live handshakes - the race cannot occur without an in-flight rotation. The network/handshake side is unauthenticated (PR:N), but the limiting factor is the race window itself: in unmodified code it is only a few CPU instructions wide (lock release to pointer dereference, no I/O between), so reliably landing it in practice needs high rotation frequency combined with high concurrent handshake volume on a busy production server. The only confirmed impact is an availability crash; a confidentiality angle was deliberately excluded by the advisory as unconfirmed.

Impact

Signals diverge in severity but agree on mechanism. The input CVSS 4.0 vector scores 8.2 (High), driven entirely by VA:H over a network vector (AV:N/PR:N/UI:N), while the vendor GHSA advisory independently scores CVSS 3.1 at 5.9 (Medium) using AC:H. The apparent conflict is reconciled by the race nature of the bug: the 4.0 vector encodes the timing precondition as AT:P with AC:L, whereas the 3.1 vector folds the narrow nanosecond window into AC:H. Both vectors concur that impact is availability-only - C and I are N - so this is a denial-of-service / memory-corruption crash, not an information-disclosure or RCE issue (the advisory explicitly excludes an unconfirmed confidentiality angle from its score). No EPSS score and no CISA KEV entry are present in the input, so there is no evidence of active or widespread exploitation; the vuln.today Decision label is this_week, not act_now or emergency. Crucially, a remote client cannot unilaterally trigger the flaw: it requires the server operator to be performing in-place session-ticket-key rotation via setSessionTicketKeys0() concurrently with live handshakes, and in unmodified code the window is only a handful of instructions wide. Realistic priority is therefore moderate - a credible DoS against busy servers that rotate ticket keys under load, warranting prompt patching on a normal cadence rather than emergency response.

Exploit ScenarioDerived

An unauthenticated remote client repeatedly performs TLS handshakes against a Netty/netty-tcnative server built on OpenSSL 3.x with session tickets enabled (the default) while the operator rotates session-ticket keys under load; if a handshake's ticket callback lands in the gap after the read lock is released but before the stale embedded pointer is dereferenced, the concurrent rotation frees the key array and OpenSSL reads freed HMAC key memory, crashing the process. No standalone weaponized public exploit code is published, but the GHSA advisory documents a hard, repeatable SIGSEGV crash reproduced on the compiled artifact (using race-widening instrumentation to make the genuine nanosecond-scale race deterministically observable).

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.5% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 26, 2026

A use-after-free in netty-tcnative 2.0.66.Final through 2.0.83.Final builds linked against OpenSSL 3.0 or newer lets a TLS handshake crash the server process when it issues or resumes a session ticket at the same moment the operator rotates ticket keys through SSLContext.setSessionTicketKeys0(). The handshake side of the race is reachable by unauthenticated remote clients (PR:N, UI:N), but the limiting precondition is the operator-initiated rotation happening inside a window only a few CPU instructions wide, which is why the assessed vector carries AT:P and AC:H and the reported CVSS 4.0 score of 8.2 resolves to an assessed CVSS 3.1 base of 5.9 with confidentiality and integrity impact unconfirmed and only availability (A:H) demonstrated. No CISA KEV entry exists and no weaponized exploit code has been identified, though the public advisory documents a reporter-side, repeatable SIGSEGV reproduction on a real compiled openssl-dynamic build using a race-widened test harness; patched builds are available and the priority label is this_week.

RemediationAI

Upgrade to netty-tcnative 2.0.84.Final, the vendor-released fix; commit 59662a8b07a9a7623ae1bc472f5751f31c81a118 removes the embedded OSSL_PARAM array from tcn_ssl_ticket_key_t and instead builds a stack-local params set through the new fill_mac_params() helper inside ssl_tlsext_ticket_key_cb, so no pointer into the freed ticket-key array survives the lock release. Because the race cannot occur without an in-flight rotation, environments that cannot upgrade immediately can eliminate exposure by suspending calls to SSLContext.setSessionTicketKeys0() for the lifetime of the vulnerable build, at the cost of no longer rotating session-ticket keys (a compliance and forward-secrecy trade-off for TLS 1.2/1.3 resumption tickets); alternatively, disable session tickets entirely on affected contexts, which removes the callback path but costs full handshakes for every reconnect. Downgrading or rebuilding the native library against an OpenSSL release older than 3.0 also avoids the flawed EVP_MAC branch, though it sacrifices OpenSSL 3.x features. Lowering rotation frequency sharply reduces the probability of hitting the nanosecond window but does not remove the race, so it is not a complete fix.

Affected VersionsENISA

netty-tcnative 2.0.66.Final <2.0.84.Final

Affected Packages

euvd netty_tcnative fix: 2.0.84.Final

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

netty-tcnative is the JNI/April-native bridge that lets Java applications (including Netty-based TLS servers) drive OpenSSL directly, and its session-ticket handling code sits in openssl-dynamic/src/main/c/sslcontext.c. Under the OPENSSL_VERSION_NUMBER >= 0x30000000L branch, which was introduced during the migration to the OpenSSL 3.0 EVP_MAC API, each entry of the heap-allocated tcn_ssl_ticket_key_t array embeds a self-referential OSSL_PARAM mac_params[3] whose OSSL_MAC_PARAM_KEY entry stores a raw pointer to the hmac_key field of that same array element. The read paths current_session_key and find_session_key copy the struct by value under the context read lock, which duplicates the 16 key bytes correctly but copies the embedded pointer verbatim so it still targets the original OPENSSL_malloc'd array, and the lock is released before ssl_tlsext_ticket_key_cb passes key.mac_params to EVP_MAC_CTX_set_params. If setSessionTicketKeys0 runs in that gap, its write path executes OPENSSL_free(c->ticket_keys) and the subsequent EVP_MAC_CTX_set_params feeds freed heap bytes into HMAC key setup, producing a crash. This is CWE-416 (use after free) combined with CWE-825 (expired pointer dereference) arising from the shallow struct copy, and it is a regression specific to the OpenSSL 3.x EVP_MAC path: builds against OpenSSL older than 3.0 use HMAC_Init_ex with the local copy's bytes directly and are not affected. The trigger requires three conditions simultaneously: an OpenSSL 3.x-linked build, session tickets enabled (the library default), and an in-place key rotation in flight concurrent with live handshakes.

Know when Netty gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (VulnCheck) PRIMARY 8.2 HIGH
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
vuln.today AI 5.9 MEDIUM

Handshake side is remote and unauthenticated (AV:N/PR:N/UI:N), but triggering needs a nanosecond rotation/handshake race (AC:H); demonstrated impact is a crash only, so C:N/I:N/A:H.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

netty-tcnative 2.0.66.Final before 2.0.84.Final built against OpenSSL 3.x contains a use-after-free vulnerability in ssl_tlsext_ticket_key_cb during session ticket key rotation. Remote clients performing TLS handshakes while setSessionTicketKeys0 frees the shared key array cause OpenSSL to read freed HMAC keys, crashing or corrupting ticket processing.

Technical POC Analysis

CWE-416 (use-after-free), with the advisory additionally classifying it as CWE-825 (expired pointer dereference).

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

CVE-2026-116540 is a high-severity availability vulnerability in netty-tcnative (versions 2.0.66.Final through 2.0.83.Final) that can cause TLS handshake crashes during session ticket key rotation, potentially leading to service disruptions. While exploitation requires a precise race condition and no active exploits are known, the flaw could impact any organization using affected versions in production. Leadership should prioritize patching to prevent unplanned outages and maintain service reliability.

Business Impact: Medium
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.5%
Top 60% exploitable
Prevalence
High
native OpenSSL TLS binding bundled by Netty/gRPC across many Java server deployments
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.5%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
Medium
Technical Impact
Partial

Priority Score

41
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +41
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Use-after-free vulnerabilities occur when a program continues to access memory through a pointer after that memory has been deallocated.

Memory corruption occurs when a program writes data beyond the boundaries of allocated memory regions or accesses memory in unintended ways, violating the integrity of the process's address space.

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

More in Netty

View all
CVE-2023-44487 HIGH POC
7.5 Oct 10

Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour

CVE-2019-16869 HIGH POC
7.5 Sep 26

Netty before 4.1.42.Final mishandles whitespace before the colon in HTTP headers (such as a "Transfer-Encoding : chunked

CVE-2026-56820 CRITICAL POC
9.1 Jul 21

Certificate revocation-check bypass in the Netty network framework's OCSP client (io.netty:netty-handler-ssl-ocsp) affec

CVE-2024-36121 CRITICAL POC
9.1 Jun 04

netty-incubator-codec-ohttp is the OHTTP implementation for netty. Rated critical severity (CVSS 9.1), this vulnerabilit

CVE-2024-40642 HIGH POC
8.1 Jul 18

The netty incubator codec.bhttp is a java language binary http parser. Rated high severity (CVSS 8.1), this vulnerabilit

CVE-2025-24970 HIGH POC
7.5 Feb 10

Netty, an asynchronous, event-driven network application framework, has a vulnerability starting in version 4.1.91.Final

CVE-2026-59902 HIGH POC
7.5 Aug 17

Memory exhaustion in Netty's SctpMessageCompletionHandler (netty-transport-sctp) allows unauthenticated remote peers to

CVE-2026-55833 HIGH POC
7.5 Jul 20

Compression-amplification denial of service in the Netty network framework (versions prior to 4.1.136.Final and 4.2.16.F

CVE-2026-55831 HIGH POC
7.5 Jul 20

Memory-amplification denial of service in the Netty network framework (SPDY/3.1 codec) prior to 4.1.136.Final and 4.2.16

CVE-2026-56816 HIGH POC
7.5 Jul 21

Memory-exhaustion denial of service in Netty's HTTP/3 codec (Http3FrameCodec) affects all releases prior to 4.2.16.Final

CVE-2026-59903 HIGH POC
7.5 Aug 17

Netty's HTTP CORS handler silently rewrites the Vary response header to Vary: Origin in releases before 4.1.137.Final an

CVE-2026-48748 HIGH POC
7.5 Jun 12

Denial of service in the Netty HTTP/3 codec (io.netty:netty-codec-http3) prior to version 4.2.15.Final allows remote una

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy