CVE-2026-64047: net: tls: fix off-by-one in sg_chain entry count for wrapped sk_msg ring
In the Linux kernel, the following vulnerability has been resolved:
net: tls: fix off-by-one in sg_chain entry count for wrapped sk_msg ring
When an sk_msg scatterlist ring wraps (sg.end < sg.start),
tls_push_record() chains the tail portion of the ring to the head
using sg_chain(). An extra entry in the sg array is reserved for
this:
struct sk_msg_sg {
[...]
/* The extra two elements:
* 1) used for chaining the front and sections when the list becomes
* partitioned (e.g. end < start). The crypto APIs require the
* chaining;
* 2) to chain tailer SG entries after the message.
*/
struct scatterlist data[MAX_MSG_FRAGS + 2];
The current code uses MAX_SKB_FRAGS + 1 as the ring size:
sg_chain(&msg_pl->sg.data[msg_pl->sg.start],
MAX_SKB_FRAGS - msg_pl->sg.start + 1,
msg_pl->sg.data);
This places the chain pointer at
sg_chain(data[start], (MAX_SKB_FRAGS - msg_start + 1) .. =
&data[start] + (MAX_SKB_FRAGS - msg_start + 1) - 1 =
data[start + (MAX_SKB_FRAGS - start + 1) - 1] =
data[MAX_SKB_FRAGS]
instead of the true last entry. This is likely due to a "race" of
the commit under Fixes landing close to
commit 031097d9e079 ("bpf: sk_msg, zap ingress queue on psock down")
Convert to ARRAY_SIZE and drop the data[start] / - start (as suggested
by Sabrina).
Security readout for executives and security teams
Plain-English summary
CVE-2026-64047 is a critical Linux kernel flaw in the TLS networking path. A boundary-counting mistake can place a scatterlist chain pointer in the wrong entry when an internal message ring wraps. The supplied CVSS score rates potential confidentiality, integrity, and availability impact as high, but the bundle does not cite active exploitation.
Executive priority
Treat as urgent patch validation for Linux infrastructure because the severity is critical and network-triggered by CVSS. Do not assume compromise from the provided evidence; focus on confirming exposure and applying trusted kernel updates quickly.
Technical view
The issue is an off-by-one in tls_push_record() when chaining a wrapped sk_msg scatterlist ring. The code used MAX_SKB_FRAGS + 1 sizing and could write the chain pointer at data[MAX_SKB_FRAGS] instead of the true last entry. Stable kernel commits convert the calculation to ARRAY_SIZE-based handling.
Likely exposure
Linux systems running affected kernel versions and using the kernel TLS/sk_msg networking path are the primary concern. The source bundle does not identify affected distributions, configurations, or appliances, so exposure should be validated through kernel package provenance and vendor advisories.
Exploitation context
The CVSS vector is network, low complexity, no privileges, and no user interaction. However, KEV is false and the provided sources do not cite exploitation in the wild, public exploit availability, or practical attack prerequisites beyond the affected kernel path.
Researcher notes
The source evidence is a kernel fix description and CVE metadata. It supports the root cause and fixed commits, but not exploitability details, distro mapping, or live exploitation. The affected-version data appears broad and should be reconciled with Linux stable and distribution advisories.
Mitigation direction
Apply vendor or distribution kernel updates containing the referenced stable fixes.
Prioritize externally reachable Linux systems and TLS-heavy infrastructure for patch assessment.
Check distribution advisories for affected package versions and backported fixes.
Use vendor guidance for any temporary configuration mitigations.
Track kernel provenance where custom or pinned kernels are deployed.
Validation and detection
Inventory Linux kernel versions across production, staging, and appliances.
Map deployed kernels against vendor advisories and the listed stable commits.
Confirm whether kernel TLS or sk_msg-related features are enabled or used.
Verify updated hosts rebooted into the remediated kernel.
Monitor vendor security channels for corrected affected-version ranges.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2026-64047 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
1CVSS vectors
3Timeline events
0ADP providers
9Source links
CVSS vector scores
1 official score
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.