CVE-2026-74610: tls: don't leave a full plaintext sk_msg ring unpushed

Published Aug 22, 2026
·
Updated

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

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

When the copy path in tlsswsendmsglocked() adds the fragment that fills the plaintext skmsg ring, it does not set fullrecord, so the record is left full and unpushed. A later splice() then adds to an already full ring: skmsgpageadd() 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:memcpyfromscatterwalk+0x32/0xc0 Call Trace: skcipherwalknext+0x1d1/0x2c0 gcmencryptaesniavx+0x1e9/0x220 bpfexectxverdict+0x3bb/0x860 tlsswsendmsg+0xa1a/0xca0 syssendto+0x1da/0x1f0

Set fullrecord in the copy path when the ring becomes full, and push a record that is already full on entry to the sendmsg loop.

Affected Software

2 affected componentsFixes available
Linux Linux kernel
Microsoft azl3 kernel 6.6.150.1-1<6.6.152.1-1
6.6.152.1-1

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Fixed in 6.6.152.1-1

Event History

Aug 22, 2026
CVE Published
via MITRE·03:31 PM
Data Sourced
via MITRE·03:31 PM
DescriptionSeverity
Data Sourced
via NVD·04:16 PM
DescriptionSeverity
Aug 24, 2026
Data Sourced
via Microsoft·08:01 AM
DescriptionSeverityWeaknessAffected Software

Frequently Asked Questions

1

Who can trigger the issue?

An unprivileged user can trigger it using a loopback TCP socket with the "tls" ULP attached.

2

What conditions lead to the failure?

The copy path must fill the plaintext sk_msg ring without marking the record full, followed by a later splice() that adds data to the already full ring. This can wrap the scatter-gather ring indices, overwrite live entries, and leave the recorded size inconsistent with reachable entries.

3

What symptoms may indicate the system has encountered this bug?

The described trigger causes a kernel NULL pointer dereference at address 0x8 in memcpy_from_scatterwalk(), with calls including skcipher_walk_next, gcm_encrypt_aesni_avx, bpf_exec_tx_verdict, tls_sw_sendmsg, and __sys_sendto.

4

What does the fix change?

The fix marks full_record when the copy path fills the ring and pushes a record that is already full when entering the sendmsg loop. This prevents subsequent data from being added to a full plaintext sk_msg ring.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203