CVE-2025-39682 — Linux Kernel net/tls rx_list Zero-Length Record Use-After-Free Added to CISA KEV Catalog
CVE-2025-39682 (TL-2026-2570) is a critical-severity software vulnerability scored CVSS 9.8, first published 2026-09-18. It has no confirmed attribution, affects Linux Linux Kernel, references 1 CVE (CVE-2025-39682), maps to 5 MITRE ATT&CK techniques (T0814, T1190, T1404), and is covered by 9 detection rules and 19 indicators of compromise.
Key facts for TL-2026-2570
- Threat ID
- TL-2026-2570
- Severity
- CRITICAL
- CVSS
- 9.8 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
- Status
- ACTIVE
- Category
- VULNERABILITY
- First published
- 2026-09-18
- Last reviewed
- 2026-09-18
- Attribution confidence
- LOW
- Motivation
- UNKNOWN
- Target sectors
- government administration, technology, cloud, industrial, criticalinfrastructure, mobile
- Target regions
- Global
- Detection rules
- 9
- Indicators of compromise
- 19
Malware and tooling in CVE-2025-39682
Malware and tooling: Google kernelCTF mitigation-v4-6.6 instance
CISA added CVE-2025-39682, a use-after-free in the Linux kernel's net/tls receive path (tls_sw_recvmsg) triggered by a zero-length TLS record pulled from rx_list, to its Known Exploited Vulnerabilities catalog on 2026-09-18 based on evidence of active exploitation, with a 2026-09-21 federal remediation deadline. A public, reliable (~79%) root-privilege-escalation exploit chain — heap-spray, cross-cache attack, and a core_pattern kernel-crash-handler hijack — is available on GitHub, and the flaw also affects Android devices via ASB-A-440544511.
How CVE-2025-39682 works
CVE-2025-39682 is a flaw in the Linux kernel's net/tls subsystem, in the function tls_sw_recvmsg(), that mishandles a corner case where a zero-length TLS record is retrieved from the kernel's internal rx_list. Because TLS 1.3 record types are only known after decryption, the kernel's receive path queues a record whose type differs from the one currently being processed onto rx_list for the next recvmsg() call to consume. STAR Labs SG's technical analysis (the vulnerability's original reporters) shows that when the record pulled from rx_list is zero-length and kernel TLS zero-copy mode is active, the kernel incorrectly re-queues the anchor sk_buff, corrupting its reference count. On socket teardown this manifests as a use-after-free in tls_sw_release_resources_rx, which STAR Labs demonstrated (KASAN-confirmed, tested on Linux 6.12.41) as a local privilege-escalation primitive usable to gain root: an attacker establishes a TLS socket with TCP_ULP kernel-TLS offload and zero-copy enabled, sends an Application Data (0x17) record, sends a zero-length Handshake (0x16) record, partially reads the first record via read(conn, buf, 0x100) leaving copied==0 so the type commitment is never finalized, sends a second Application Data (0x17) record, calls recvmsg() to trigger the content-type-mismatch path, then closes the socket to trigger the UAF. No special container or namespace context is required — STAR Labs' PoC runs entirely as a standard local unprivileged user.
A public, independently authored exploit (GitHub: khoatran107/cve-2025-39682, described as a variant of CVE-2024-58239) fully weaponizes the primitive into reliable root code execution and reports an ~79/100 success rate against Google's kernelCTF mitigation-v4-6.6 hardened target instance. The exploitation chain: after triggering the UAF, the attacker uses splice() to pull the dangling anchor skb into a pipe, giving the freed page a second (writable) reference; ~128 pipe buffers are then filled with marker bytes as a heap spray so one pipe reclaims the freed page; the attacker forces page-table-entry (PTE) allocation via repeated mmap()/page-fault cycles so the buddy allocator hands the still-pipe-held freed page back out as a kernel page-table page — a classic cross-cache attack. Because a freshly faulted PTE initially points at the fixed kernel symbol empty_zero_page, reading it back through the pipe leaks a kernel pointer; masking flag bits and subtracting a fixed offset yields the runtime kernel base address, defeating KASLR without needing to bypass SMEP/SMAP (the write path goes through the pipe-buffer kernel structure rather than a direct user-controlled pointer dereference). The attacker then overwrites the reclaimed PTE to point at the physical address of the kernel's core_pattern sysctl, and writes a crash-handler string such as "|/proc/%P/fd/666 %P" through the pipe — hijacking the kernel's core-dump handler so that the next process crash on the system executes an attacker-controlled program as root.
The bug was introduced with Linux kernel 6.0 (released 2022-10-02; regression commit 84c61fe1a75b4255df1e1e7c054c9e6d048da417) and fixed upstream on 2025-09-05 across five stable branches: 6.1.149, 6.6.103, 6.12.44, 6.16.4, and 6.17-rc3. Downstream distributions shipped their own backports — Debian 11 (bullseye) linux-6.1 6.1.153-1~deb11u1 (LTS update published 2025-10-13, bundled with 400+ other kernel CVEs), Ubuntu via USN-7833-3 (AWS kernel, 2025-10-24) and the broader USN-7835/7928/7940/8188 series (24.04 LTS 6.8.0-86.87, 25.04 6.14.0-34.34), and Red Hat Enterprise Linux 9/10 via RHSA-2025:16880/16904 plus related EUS/SAP errata. The vulnerable Kernel TLS code is also present in the Android kernel: Google's Android Security Bulletin tracks it as ASB-A-440544511 ("possible use after free due to an incorrect bounds check in tls_sw_recvmsg of tls_sw.c"), rated High severity, local escalation of privilege with no additional execution privileges or user interaction needed, published 2026-03-01 and last modified 2026-09-11, fixed at the 2025-03-05 security patch level or later — meaning unpatched Android devices carry the same root-privesc exposure as desktop/server Linux. Siemens also bundled the fix into SIMATIC CN 4100 firmware V5.0 (advisory SSA-032379, listing CVE-2025-39682 itself at CVSS 3.1 7.0 among 167 CVEs the firmware update addresses in total); SIMATIC CN 4100 is a communication node used to connect third-party systems into process-control (OT) environments, extending exposure — and the standing DoS/crash risk from the underlying use-after-free — into industrial networks running embedded Linux, though Siemens' advisory does not itself narrate a device-specific exploitation scenario beyond "update to V5.0." Siemens' independently-published 7.0 score is a third distinct CVSS 3.1 value for this single CVE, alongside NVD's 7.1 (local) and the CNA's 9.8 (network) — three publishers, three numbers, underscoring how unsettled the scoring is.
STAR Labs' advisory and a follow-on n-day technical analysis (hackmd, unauthenticated author) both narrate the exploit at instruction-level detail. The PoC uses three TLS 1.2 records over a kernel-TLS (`TCP_ULP`) zero-copy socket: record 1 is Application Data (0x17) carrying an encrypted "Hello world" payload; record 2 is a zero-length Handshake (0x16) record; record 3 is a second Application Data (0x17) record. A `read(conn, buf, 0x100)` partially consumes record 1, leaving the internal `copied` counter at 0 so the content-type commitment for the stream is never finalized; the next `recvmsg()` then processes record 2 off `rx_list` and corrupts the anchor `sk_buff`'s reference count. STAR Labs' KASAN build surfaces this as a `slab-use-after-free` in `kfree_skb_list_reason`, reached when `tls_sw_release_resources_rx` walks memory it no longer owns that was originally allocated by `tcp_sendmsg_locked`. The khoatran107 write-up (itself explicitly framed as "a variant of CVE-2024-58239," a related prior kernel UAF/exploit-technique pairing) refines this into full root code execution without any kernel-version fingerprinting step (no `/proc/version`, `/proc/kallsyms`, `uname`, or `dmesg` probing is used) — instead it leaks the KASLR-defeating kernel base purely via the architecturally-fixed `empty_zero_page` symbol reachable through the corrupted page-table entry, and finishes by writing the literal string `|/proc/%P/fd/666 %P` into `core_pattern` through the captured pipe to hijack the next process crash into root code execution. No container, namespace, or cgroup-specific targeting is described; the exploit runs as a standard, unprivileged local process.
CISA added CVE-2025-39682 to its Known Exploited Vulnerabilities catalog on 2026-09-18 'based on evidence of active exploitation,' setting a federal remediation deadline of 2026-09-21 under BOD 26-04. Notably, the two published CVSS 3.1 scores for this CVE diverge sharply: NVD's own primary analysis and Red Hat's independent assessment rate it 7.1/High with a LOCAL attack vector (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H), consistent with the local-attacker PoC STAR Labs and khoatran107 documented, while a secondary CNA score rates it 9.8/Critical with a NETWORK vector (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) — plausibly reflecting that the vulnerable net/tls receive-path code is reachable by any remote TLS peer whose ciphertext is decrypted by a kTLS-offloading service (e.g. nginx, HAProxy, Kafka deployments using ktls), since TLS record type/length framing inside the encrypted stream is attacker-controlled by whichever peer is sending data. Both scores are legitimately published; defenders should treat this as capable of both local privilege escalation (now with a public, reliable, root-yielding exploit) and, on ktls-enabled network services, a remotely-influenced trigger, and should not assume the lower/local score bounds real-world exposure. CISA classifies the underlying weakness as CWE-754 (Improper Check for Unusual or Exceptional Conditions); STAR Labs' root-cause finding is CWE-416 (Use-After-Free); Siemens' advisory separately tags it CWE-20 (Improper Input Validation) — three descriptions of the same defect from three vantage points.
MITRE ATT&CK techniques used in TL-2026-2570
inhibit-response-function
Initial Access
T1190 Exploit Public-Facing Application
Privilege Escalation
T1404 Exploitation for Privilege Escalation; T1546 Event Triggered Execution
Impact
T1499.004 Endpoint Denial of Service: Application or System Exploitation
Affected products and versions in CVE-2025-39682
- Linux — Linux Kernel
Vulnerable versions: 6.0–6.1.148; 6.2–6.6.102; 6.7–6.12.43; 6.13–6.16.3; 6.17-rc1; 6.17-rc2
Fixed in: 6.1.149; 6.6.103; 6.12.44; 6.16.4; 6.17-rc3 - Debian — linux-6.1 (Debian 11 bullseye)
Vulnerable versions: < 6.1.153-1~deb11u1
Fixed in: 6.1.153-1~deb11u1 - Canonical — linux (Ubuntu, multiple kernel flavors incl. AWS)
Vulnerable versions: < 6.8.0-86.87 (24.04 noble); < 6.14.0-34.34 (25.04 plucky); pre-USN-7833-3 (AWS kernel)
Fixed in: 6.8.0-86.87; 6.14.0-34.34; USN-7833-3 and related USN-7835/7928/7940/8188 series - Red Hat — Red Hat Enterprise Linux 9 / 10 kernel
Vulnerable versions: pre-RHSA-2025:16880/16904/19104/19223/19224
Fixed in: per RHSA-2025:16880 (RHEL 9), RHSA-2025:16904 (RHEL 10), RHSA-2025:19104/19223/19224 (RHEL 9.x EUS/SAP) - Google — Android (Kernel TLS component)
Vulnerable versions: security patch level < 2025-03-05
Fixed in: security patch level 2025-03-05+ (ASB-A-440544511) - Siemens — SIMATIC CN 4100
Vulnerable versions: < V5.0
Fixed in: V5.0
Remediation for CVE-2025-39682
Patches
- Upstream stable fixes: 2902c3ebcca52ca845c03182000e8d71d3a5196f (6.1.149), c09dd3773b5950e9cfb6c9b9a5f6e36d06c62677 (6.6.103), 3439c15ae91a517cf3c650ea15a8987699416ad9 (6.12.44), 29c0ce3c8cdb6dc5d61139c937f34cb888a6f42e (6.16.4), 62708b9452f8eb77513115b17c4f8d1a22ebf843 (6.17-rc3)
- Debian 11 (bullseye): linux-6.1 6.1.153-1~deb11u1 (published 2025-10-13)
- Ubuntu: USN-7833-3 (AWS kernel, 2025-10-24); linux 6.8.0-86.87 (24.04 LTS noble); linux 6.14.0-34.34 (25.04 plucky)
- Red Hat: RHSA-2025:16880 (RHEL 9), RHSA-2025:16904 (RHEL 10), RHSA-2025:19104 (RHEL 9.4 EUS), RHSA-2025:19223/19224 (RHEL 9.2 SAP Solutions)
- Android: security patch level 2025-03-05 or later (ASB-A-440544511)
- Siemens SIMATIC CN 4100: update to firmware V5.0 or later
Immediate actions
- Identify all Linux hosts/images running an affected kernel (6.0–6.1.148, 6.2–6.6.102, 6.7–6.12.43, 6.13–6.16.3, 6.17-rc1/rc2), prioritizing publicly-exposed, ktls-terminating services and multi-tenant hosts per CISA BOD 26-04.
- Apply the vendor kernel update (Debian linux-6.1 6.1.153-1~deb11u1, Ubuntu 6.8.0-86.87 / 6.14.0-34.34 / USN-7833-3, or the applicable RHSA) or update to upstream 6.1.149/6.6.103/6.12.44/6.16.4/6.17-rc3+ by the CISA KEV due date of 2026-09-21.
- A working public root-privilege-escalation exploit exists (GitHub khoatran107/cve-2025-39682, ~79% reliability against a hardened kernelCTF target) — treat unpatched local-user access anywhere on affected hosts as an imminent root-compromise path, not a theoretical risk.
- Patch Android fleets to security patch level 2025-03-05 or later (ASB-A-440544511) — this is the same kernel flaw, not a separate issue.
- Where kernel TLS (ktls) offload is enabled on network-facing services, review usage and where feasible temporarily disable it until patched.
Workarounds
- No official workaround beyond patching is documented by upstream or vendors; disabling kernel TLS (ktls) offload on affected services removes the vulnerable code path at a performance cost.
Longer-term hardening
- Track Linux kernel patch currency against the CISA KEV catalog and vendor stable-kernel releases as a standing vulnerability-management control.
- Deploy kernel crash/KASAN-style panic monitoring and EDR capable of flagging anomalous recvmsg()/TLS record sequences, unexpected kernel oops on TLS-terminating hosts, or unexpected writes to /proc/sys/kernel/core_pattern.
- For Siemens SIMATIC CN 4100 and other embedded/OT Linux appliances, maintain a firmware update cadence tied to vendor ProductCERT advisories (e.g. SSA-032379).
- Include mobile/Android fleet kernel patch levels in the same vulnerability-management tracking used for server/desktop Linux, since shared kernel subsystems like net/tls affect both.
CVEs associated with CVE-2025-39682
CVE-2025-39682
Weaknesses (CWE) in CVE-2025-39682
CWE-754, CWE-416, CWE-20
Timeline of CVE-2025-39682
- The vulnerable rx_list handling logic enters the Linux kernel mainline with the 6.0 release (regression commit 84c61fe1a75b4255df1e1e7c054c9e6d048da417).
- Billy Jheng Bing-Jhong and Muhammad Alifa Ramdhan of STAR Labs SG report the use-after-free to the Linux kernel security team after demonstrating a KASAN-confirmed local privilege-escalation PoC on Linux 6.12.41.
- STAR Labs SG publishes a full technical advisory with root-cause analysis and working local privilege-escalation PoC for CVE-2025-39682.
- Upstream fix lands across five stable branches (6.1.149, 6.6.103, 6.12.44, 6.16.4, 6.17-rc3) and CVE-2025-39682 is published; NVD assigns a primary local-vector CVSS 3.1 of 7.1 while a secondary CNA score rates it 9.8 with a network vector.
- Debian issues an LTS security update for Debian 11 (bullseye), backporting the fix in linux-6.1 6.1.153-1~deb11u1 alongside 400+ other kernel CVEs.
- Canonical publishes USN-7833-3 for the Ubuntu AWS kernel, part of a broader USN-7835/7928/7940/8188 series backporting the fix across Ubuntu kernel flavors including 24.04 LTS and 25.04.
- Google publishes Android Security Bulletin entry ASB-A-440544511, confirming the same net/tls use-after-free in the Android Kernel TLS component as a High-severity local privilege-escalation issue fixed at the 2025-03-05 security patch level.
- Red Hat's public Bugzilla tracker (BZ#2393511) for CVE-2025-39682 is last updated, referencing RHSA-2025:16880/16904 and related RHEL 9.x EUS/SAP errata.
- Google's Android Security Bulletin entry ASB-A-440544511 for CVE-2025-39682 is last modified, shortly before the CISA KEV addition.
- CISA adds CVE-2025-39682 to the Known Exploited Vulnerabilities catalog, citing evidence of active exploitation; NVD's record is last-modified the same day.
- CISA's BOD 26-04 remediation deadline for federal agencies to patch or discontinue use of affected systems.
Sources cited for CVE-2025-39682
- CISA Adds One Known Exploited Vulnerability to Catalog
- CISA KEV Catalog — CVE-2025-39682
- NVD — CVE-2025-39682 Detail
- OSV.dev — CVE-2025-39682
- OSV.dev — ASB-A-440544511 (Android Security Bulletin, Kernel TLS component)
- STAR Labs — CVE-2025-39682: Linux Kernel net/tls Use-After-Free in tls_sw_recvmsg Leading to Privilege Escalation
- CVE-2025-39682 n-day Analysis (heap-spray, cross-cache PTE reclamation, core_pattern hijack)
- GitHub — khoatran107/cve-2025-39682 (public root-privesc exploit, ~79/100 vs kernelCTF mitigation-v4-6.6)
- Red Hat Bugzilla 2393511 — CVE-2025-39682 kernel: tls: fix handling of zero-length records on the rx_list
- Ubuntu Security — CVE-2025-39682
- USN-7833-3: Linux kernel (AWS) vulnerabilities
- Debian LTS Security Update — linux-6.1 (debian-lts-announce)
- Siemens ProductCERT SSA-032379 — SIMATIC CN 4100
- Linux kernel stable fix commit (6.1.149) — tls: fix handling of zero-length records on the rx_list
- Linux CVE announcement — CVE-2025-39682
More in vulnerability
- Click2Shell WordPress Exploit Chain Lets Attackers Gain RCE With a Single Malicious Link
- SolarWinds Access Rights Manager Hard-Coded Cryptographic Key (CVE-2026-28326) Enables Unauthenticated RCE
- CISA Flags Three Actively Exploited Linux Kernel Vulnerabilities: kTLS Receive-Path Disclosure/DoS, ebtables SNAT Privilege Escalation, and AF_ALG Race Condition (CVE-2025-39682, CVE-2026-53266, CVE-2025-39964)
- Critical Pre-Auth RCE in Orkes Conductor Workflow Platform (CVE-2026-58138) Exploited in the Wild
- "LPE Quartet": Public Exploits Released for Four Linux Kernel Local-Root Flaws (DirtyAH6, TUNderflow, PPPoEject, DiagSpill)
Detection coverage for TL-2026-2570
As of 2026-09-18, Threadlinqs Intelligence publishes 9 detection rule(s) for TL-2026-2570 across Splunk SPL, Microsoft KQL and Sigma, covering 19 indicator(s) of compromise. The whole corpus is readable without an account; a free account unlocks full detection query text in Splunk SPL, Microsoft KQL and Sigma; paid tiers add raw indicator values, correlation and the MCP server. Threadlinqs MCP server · View plans.