CVE-2026-64047CWE-191CWE-193

CVE-2026-64047

Critical · published July 19, 2026

CVSS v3.1
9.8
EPSS
1%
Percentile
42.9
In the wild
Unconfirmed
What it is

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).

The record
Technical detail
CVSS v3.1
9.8 · CRITICAL
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00514 · 42.9th percentile
Weaknesses
CWE-191 · Integer Underflow (Wrap or Wraparound); CWE-193 · Off-by-one Error
Published
2026-07-19T20:17Z
Affected products (13)
ProductVersionsFixed in
linux/linux_kernel≥ 5.4.14, < 5.55.5
linux/linux_kernel≥ 5.5.1, < 5.10.2585.10.258
linux/linux_kernel≥ 5.11, < 5.15.2095.15.209
linux/linux_kernel≥ 5.16, < 6.1.1756.1.175
linux/linux_kernel≥ 6.2, < 6.6.1426.6.142
linux/linux_kernel≥ 6.7, < 6.12.926.12.92
linux/linux_kernel≥ 6.13, < 6.18.346.18.34
linux/linux_kernel≥ 6.19, < 7.0.117.0.11
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
References (8)
EPSS history
Timeline
  • 19 JUL 15:39Z
    net: tls: fix off-by-one in sg_chain entry count for wrapped sk_msg ring
    cvelistv5