CVE-2025-39682·Kernel vulnerability
In the Linux kernel, the following vulnerability has been resolved: tls: fix handling of zero-length records on the rx_list Each recvmsg() call must process either - only contiguous DATA records (any number of them) - one non-DATA record If the next record has different type than what has already been processed we break out of the main processing loop. If the record has already been decrypted (which may be the case for TLS 1.3 where we don't know type until decryption) we queue the pending record to the rx_list. Next recvmsg() will pick it up from there. Queuing the skb to rx_list after zero-copy decrypt is not possible, since in that case we decrypted directly to the user space buffer, and we don't have an skb to queue (darg.skb points to the ciphertext skb for access to metadata like length). Only data records are allowed zero-copy, and we break the processing loop after each non-data record. So we should never zero-copy and then find out that the record type has changed. The corner case we missed is when the initial record comes from rx_list, and it's zero length.
- Severity
- critical
- Software
- Kernel
- Fixed in
- 6.16.4
- Published
How likely is exploitation
FIRST's Exploit Prediction Scoring System puts the probability of this CVE being exploited in the next 30 days at 2.9% — higher than 86% of all published CVEs. EPSS is an independent forecast of exploitation, not a severity rating: it says nothing about how much damage a successful attack does, which is what a CVSS score measures.
Affected versions
From: 6.13
Until: 6.16.4
Fixed in: 6.16.4
How to fix this CVE
Update your Linux kernel to version 6.16.4 or later to patch the TLS record handling vulnerability in the rx_list mechanism. This critical flaw affects kernel versions 6.13 through 6.16.3 and allows remote attackers to exploit improper handling of zero-length TLS records, potentially leading to complete system compromise. Prioritize this update immediately as the vulnerability is actively exploited in the wild.
sudo dnf update kernelDefensia detects this vulnerability
How to check if you are affected
- Step 1: Check installed kernel version with `uname -r` and compare against the affected range (6.13 to 6.16.3)
- Step 2: Verify TLS/cryptographic services are exposed to untrusted networks using `ss -tlnp | grep -E ':(443|465|587|636|989|990|992|993|995)'`
- Step 3: Search system logs for TLS decryption errors or zero-length record processing warnings: `journalctl -u kernel --grep='tls|decrypt' -n 100`
- Step 4: After patching, confirm the new kernel is loaded with `uname -r` and verify it matches 6.16.4 or later, then reboot if necessary
FAQ
What is CVE-2025-39682?
This vulnerability is a logic flaw in the Linux kernel's TLS record handling that improperly manages zero-length records in the rx_list queue. When a zero-length record from the receive list meets specific conditions, the kernel fails to correctly process record type transitions, allowing remote attackers to trigger memory corruption or denial of service.
Is CVE-2025-39682 being actively exploited?
Yes, this vulnerability is actively exploited in the wild and is listed on CISA's Known Exploited Vulnerabilities (KEV) catalog. No public proof-of-concept code has been released, but the active exploitation status indicates attackers are using weaponized exploits against vulnerable systems.
What versions of Kernel are affected by CVE-2025-39682?
Linux kernel versions 6.13, 6.14, 6.15, and 6.16 up to 6.16.3 are vulnerable. Version 6.16.4 and later contain the fix.
How do I check if my server is vulnerable to CVE-2025-39682?
Run `uname -r` to display your kernel version. If the output is 6.13.x through 6.16.3, your system is vulnerable and requires immediate patching.
Does Defensia detect CVE-2025-39682?
Yes — Defensia's CVE advisory scanner compares installed package versions against the NVD database. If Kernel is installed on a monitored server, CVE-2025-39682 will appear in your dashboard with remediation steps.
Related Kernel CVEs
References
- https://git.kernel.org/stable/c/2902c3ebcca52ca845c03182000e8d71d3a5196f
- https://git.kernel.org/stable/c/29c0ce3c8cdb6dc5d61139c937f34cb888a6f42e
- https://git.kernel.org/stable/c/3439c15ae91a517cf3c650ea15a8987699416ad9
- https://git.kernel.org/stable/c/62708b9452f8eb77513115b17c4f8d1a22ebf843
- https://git.kernel.org/stable/c/c09dd3773b5950e9cfb6c9b9a5f6e36d06c62677
Track CVEs across your fleet automatically
Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2025-39682. Free for 1 server.
Get started free