Description
In the Linux kernel, the following vulnerability has been resolved:

tls: don't leave a full plaintext sk_msg ring unpushed

When the copy path in tls_sw_sendmsg_locked() adds the fragment that fills
the plaintext sk_msg ring, it does not set full_record, so the record is
left full and unpushed. A later splice() then adds to an already full
ring: sk_msg_page_add() has no fullness check of its own, so sg.end wraps
onto sg.start and the ring appears empty. Fragments added after that
overwrite live entries, and sg.size no longer matches what is reachable
between sg.start and sg.end, so pushing the record runs the scatterwalk off
the end of the scatterlist.

An unprivileged user can trigger this on a loopback TCP socket with the
"tls" ULP attached:

BUG: kernel NULL pointer dereference, address: 0000000000000008
RIP: 0010:memcpy_from_scatterwalk+0x32/0xc0
Call Trace:
skcipher_walk_next+0x1d1/0x2c0
gcm_encrypt_aesni_avx+0x1e9/0x220
bpf_exec_tx_verdict+0x3bb/0x860
tls_sw_sendmsg+0xa1a/0xca0
__sys_sendto+0x1da/0x1f0

Set full_record in the copy path when the ring becomes full, and push a
record that is already full on entry to the sendmsg loop.
Published: 2026-08-22
Score: n/a
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

An unprivileged user can create a TLS socket on a loopback interface and send data that triggers a NULL pointer dereference in the Linux kernel’s TLS implementation. The fault occurs because the plaintext sk_msg ring becomes full without setting the full_record flag, allowing subsequent operations to wrap indices and corrupt the scatterlist. When the kernel later processes the ring, it walks past the valid memory range, producing a crash. The vulnerability is a null pointer dereference (CWE‑476) and results in a kernel panic, disabling all system processes that rely on the kernel.

Affected Systems

All Linux kernel releases that have not incorporated the upstream patch are affected. Vendor listings indicate Linux:Linux, meaning every Linux kernel distribution is potentially impacted until the fix is applied. No specific version number is identified; therefore, all versions previous to the public fix should be treated as vulnerable.

Risk and Exploitability

The flaw can be exercised locally by any unprivileged user with access to create a TLS socket on a loopback interface. No privilege escalation occurs, but the resulting kernel crash denies availability to the entire system. The EPSS score is not available and the issue is not listed in CISA’s KEV catalog, yet the straightforward attack path suggests a high exploitation likelihood in environments that use TLS over loopback.

Generated by OpenCVE AI on August 22, 2026 at 19:07 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update the Linux kernel to a revision that includes the TLS ring‑buffer handling fix from the upstream repository.
  • Temporarily disable TLS on loopback interfaces or remove the TLS upper‑layer protocol from socket configurations to prevent the vulnerable code path from executing.
  • Implement automated monitoring of kernel crashes and configure services to restart automatically so that availability is quickly restored while the permanent patch is being applied.

Generated by OpenCVE AI on August 22, 2026 at 19:07 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 22 Aug 2026 19:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-476

Sat, 22 Aug 2026 15:45:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: tls: don't leave a full plaintext sk_msg ring unpushed When the copy path in tls_sw_sendmsg_locked() adds the fragment that fills the plaintext sk_msg ring, it does not set full_record, so the record is left full and unpushed. A later splice() then adds to an already full ring: sk_msg_page_add() has no fullness check of its own, so sg.end wraps onto sg.start and the ring appears empty. Fragments added after that overwrite live entries, and sg.size no longer matches what is reachable between sg.start and sg.end, so pushing the record runs the scatterwalk off the end of the scatterlist. An unprivileged user can trigger this on a loopback TCP socket with the "tls" ULP attached: BUG: kernel NULL pointer dereference, address: 0000000000000008 RIP: 0010:memcpy_from_scatterwalk+0x32/0xc0 Call Trace: skcipher_walk_next+0x1d1/0x2c0 gcm_encrypt_aesni_avx+0x1e9/0x220 bpf_exec_tx_verdict+0x3bb/0x860 tls_sw_sendmsg+0xa1a/0xca0 __sys_sendto+0x1da/0x1f0 Set full_record in the copy path when the ring becomes full, and push a record that is already full on entry to the sendmsg loop.
Title tls: don't leave a full plaintext sk_msg ring unpushed
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-08-22T15:31:56.813Z

Reserved: 2026-08-15T05:44:03.920Z

Link: CVE-2026-74610

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-22T16:16:33.547

Modified: 2026-08-22T16:16:33.547

Link: CVE-2026-74610

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-22T19:15:03Z

Weaknesses