CVE-2025-39682: Linux Kernel Improper Check for Unusual or Exceptional Conditions Vulnerability
Reference page built from the source records below, each shown as its source publishes it. Dataset version ref-493c7b796e92, updated 2026-11-02T23:39:54.475Z.
CISA Known Exploited Vulnerabilities
- Name
- Linux Kernel Improper Check for Unusual or Exceptional Conditions Vulnerability
- Vendor
- Linux
- Product
- Kernel
- Added to the catalog
- 2026-09-18
- Due date for US federal agencies
- 2026-09-21
- Weaknesses
- CWE-754
- Catalog version
- 2026.10.30
Linux Kernel contains an improper check for unusual or exceptional conditions vulnerability in the TLS receive path which allows a zero-length record retrieved from the rx_list to bypass the intended recvmsg() record-type handling, potentially causing subsequent TLS records to be processed using incorrect zero-copy and queuing assumptions. The impacted product(s) could be end-of-life (EoL) and/or end-of-service (EoS). Users are advised to discontinue use and/or transition to a supported version.
Required action (CISA)
Apply mitigations in accordance with vendor instructions, ensuring compliance with CISA’s BOD 26-04 Prioritizing Security Updates Based on Risk (see URL in Notes) guidance and CISA’s “Forensics Triage Requirements” (see URL in Notes). Follow applicable BOD 26-04 guidance for cloud services or discontinue use of the product if mitigations are unavailable. Stakeholders are responsible for evaluating each asset's internet exposure and ensuring adherence to BOD 26-04 patching guidelines.
Ransomware use: CISA does not mark known use of this vulnerability in ransomware campaigns.
Links in CISA's notes
- https://git.kernel.org/stable/c/2902c3ebcca52ca845c03182000e8d71d3a5196f
- https://git.kernel.org/stable/c/c09dd3773b5950e9cfb6c9b9a5f6e36d06c62677
- https://git.kernel.org/stable/c/3439c15ae91a517cf3c650ea15a8987699416ad9
- https://git.kernel.org/stable/c/29c0ce3c8cdb6dc5d61139c937f34cb888a6f42e
- https://git.kernel.org/stable/c/62708b9452f8eb77513115b17c4f8d1a22ebf843
- https://www.cisa.gov/news-events/directives/bod-26-04-prioritizing-security-updates-based-risk
- https://www.cisa.gov/news-events/directives/bod-26-04-implementation-guidance-prioritizing-security-updates-based-risk
- https://nvd.nist.gov/vuln/detail/CVE-2025-39682
Read on 2026-11-02T23:39:54.475Z under licence cisa-kev-cc0@b0067899 from https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json
NVD analysis
- Status
- Analyzed
- Published
- 2025-09-05T18:15:44.670
- Last modified
- 2026-10-19T21:10:00.160
- Weaknesses
- NVD-CWE-Other, CWE-754
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.
| Metric | Score | Severity | Vector | Scored by |
|---|---|---|---|---|
| CVSS 3.1 | 9.8 | CRITICAL | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H | 416baaa9-dc9f-4396-8d5f-8c081fb06d67 (Secondary) |
| CVSS 3.1 | 9.8 | CRITICAL | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H | [email protected] (Primary) |
References
- https://git.kernel.org/stable/c/2902c3ebcca52ca845c03182000e8d71d3a5196f (Patch)
- https://git.kernel.org/stable/c/29c0ce3c8cdb6dc5d61139c937f34cb888a6f42e (Patch)
- https://git.kernel.org/stable/c/3439c15ae91a517cf3c650ea15a8987699416ad9 (Patch)
- https://git.kernel.org/stable/c/62708b9452f8eb77513115b17c4f8d1a22ebf843 (Patch)
- https://git.kernel.org/stable/c/c09dd3773b5950e9cfb6c9b9a5f6e36d06c62677 (Patch)
- https://lists.debian.org/debian-lts-announce/2025/10/msg00008.html (Mailing List, Third Party Advisory)
- https://cert-portal.siemens.com/productcert/html/ssa-032379.html (Third Party Advisory)
- https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2025-39682 (US Government Resource)
This product uses the NVD API but is not endorsed or certified by the NVD.
Read on 2026-11-02T23:42:22.836Z under licence nvd-api-terms-of-use@ff2a5288 from https://services.nvd.nist.gov/rest/json/cves/2.0?cveId=CVE-2025-39682
CVE record
- Title (CNA)
- tls: fix handling of zero-length records on the rx_list
- Assigner
- Linux
- State
- PUBLISHED
- Published
- 2025-09-05T17:20:48.657Z
- Updated
- 2026-10-07T17:56:14.826Z
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.
References
- https://git.kernel.org/stable/c/2902c3ebcca52ca845c03182000e8d71d3a5196f
- https://git.kernel.org/stable/c/c09dd3773b5950e9cfb6c9b9a5f6e36d06c62677
- https://git.kernel.org/stable/c/3439c15ae91a517cf3c650ea15a8987699416ad9
- https://git.kernel.org/stable/c/29c0ce3c8cdb6dc5d61139c937f34cb888a6f42e
- https://git.kernel.org/stable/c/62708b9452f8eb77513115b17c4f8d1a22ebf843
Read on 2026-11-03T02:16:25.507Z under licence cve-terms-of-use@81bfa2f3 from https://raw.githubusercontent.com/CVEProject/cvelistV5/main/cves/2025/39xxx/CVE-2025-39682.json
Defensive techniques (MITRE D3FEND)
D3FEND maps these defensive techniques to the weakness (CWE) that NVD lists for this CVE, through the digital artifacts the weakness affects. D3FEND does not say they stop this vulnerability.
CWE-754: Improper Check for Unusual or Exceptional Conditions
- Harden: Domain Logic Validation (acts on Subroutine)
- Harden: Variable Type Validation (acts on Pointer Dereferencing Function)
- Model: Software Inventory (acts on Software)
- Harden: Credential Scrubbing (acts on Subroutine)
- Isolate: Application-based Process Isolation (acts on Subroutine)
- Restore: Restore Software (acts on Software)
- Harden: Trusted Library (acts on Subroutine)
- Harden: Variable Initialization (acts on Subroutine)
- Model: Asset Vulnerability Enumeration (acts on Software)
- Harden: Null Pointer Checking (acts on Pointer Dereferencing Function)
- Harden: Software Update (acts on Software)
D3FEND ontology version 1.6.0.
Read on 2026-11-03T00:02:46.929Z under licence d3fend-terms-of-use@f98cbc7e from https://d3fend.mitre.org/api/weakness/cwe/CWE-754.json
MITRE D3FEND™ knowledge graph. © 2025 The MITRE Corporation.
"The MITRE Corporation (MITRE) hereby grants you a non-exclusive, royalty-free license to use D3FEND for research, development, and commercial purposes. Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy." Terms: https://d3fend.mitre.org/tou/
Sources and licences
CISA
Source: CISA Catalog of Known Exploited Vulnerabilities, version 2026.10.30, CC0 1.0. Use of this data does not imply endorsement by CISA or DHS.
National Vulnerability Database (NIST)
This product uses the NVD API but is not endorsed or certified by the NVD.
NVD API Terms of Use (NIST publications in the public domain, 17 U.S.C. 105)
CVE Program, The MITRE Corporation
Copyright © 1999-2026, The MITRE Corporation. CVE is a trademark and the CVE logo is a registered trademark of The MITRE Corporation. CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE™). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy.
MITRE D3FEND
MITRE D3FEND™ knowledge graph. © 2025 The MITRE Corporation.
"The MITRE Corporation (MITRE) hereby grants you a non-exclusive, royalty-free license to use D3FEND for research, development, and commercial purposes. Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy." Terms: https://d3fend.mitre.org/tou/MITRE D3FEND Terms of Use (site + knowledge graph); source repo MIT
Cite this page
Dragons Eye Ransomware Tracker, "CVE-2025-39682: Linux Kernel Improper Check for Unusual or Exceptional Conditions Vulnerability",
entity page, dataset version ref-493c7b796e92, updated 2026-11-02T23:39:54.475Z,
https://ransomware-tracker.com/cve/CVE-2025-39682 (accessed 2026-11-03).
Underlying source: CISA Catalog of Known Exploited Vulnerabilities, version 2026.10.30.
Underlying source: National Vulnerability Database (NIST), CVE API 2.0, record last modified 2026-10-19T21:10:00.160.
Underlying source: CVE List (CVE Program, The MITRE Corporation), record updated 2026-10-07T17:56:14.826Z.
Underlying source: MITRE D3FEND, ontology version 1.6.0.
Pages change. The dataset version identifies the data, but no archive of old versions is kept, so this citation cannot be replayed later.