CVE-2026-80904: net/tls: Fail tls_sw_splice_read() after a failed async decrypt

Published Sep 4, 2026
·
Updated

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

net/tls: Fail tlsswspliceread() after a failed async decrypt

When an async decrypt fails, tlsdecryptdone() records the error in ctx->asyncwait.err and calls tlserrabort(), which stores it in skerr. tlsswrecvmsg() and tlsswreadsock() each read asyncwait.err once they hold the reader lock and fail the call: a record that did not authenticate breaks the connection.

tlsswspliceread() has no such check, and skerr does not stand in for one. tlsrxrecwait() tests skerr only inside the loop it skips whenever a record is already parsed, and the first reader to reach sockerror() clears it, while asyncwait.err persists. A splice therefore keeps delivering records on a connection that recvmsg() and readsock() refuse to read.

Read asyncwait.err in tlsswspliceread() as the other two readers do.

Affected Software

1 affected component
Linux Linux kernel

Event History

Sep 4, 2026
CVE Published
via MITRE·05:19 PM
Data Sourced
via MITRE·05:19 PM
Description

Frequently Asked Questions

1

Which systems are exposed to this behavior?

Systems using the Linux kernel TLS software receive path are affected when data is consumed through tls_sw_splice_read() and an asynchronous TLS decrypt failure occurs. The issue concerns connections where a record has failed authentication.

2

What condition is required for exploitation or impact?

An asynchronous decrypt must fail, causing an authentication failure on a TLS record, and the connection must subsequently be read using the splice read path. Other reader paths, tls_sw_recvmsg() and tls_sw_read_sock(), already check the persistent async error and fail the read.

3

How can I tell whether a connection has encountered the affected state?

The affected state is indicated by an error recorded in ctx->async_wait.err after async decryption fails. sk_err alone is not reliable for detection because it can be cleared by the first reader that calls sock_error(), while async_wait.err persists.

4

What is the remediation?

Apply a Linux kernel update containing the fix that makes tls_sw_splice_read() check async_wait.err and fail after an asynchronous decrypt error. The provided stable kernel references identify commits containing the correction.

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