{"id":"CVE-2026-80904","title":"net/tls: Fail tls_sw_splice_read() after a failed async decrypt","summary":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet/tls: Fail tls_sw_splice_read() after a failed async decrypt\n\nWhen an async decrypt fails, tls_decrypt_done() records the error in\nctx->async_wait.err and calls tls_…","severity":"none","vendor":"Linux","product":"Linux","affected":["Linux >= f314bfee81b1bf8e01168177b2f65f24eb8da63a < a808aadff634c7a408b2ab84d5919e9a741fdb5b","Linux >= f314bfee81b1bf8e01168177b2f65f24eb8da63a < 06c2a53604fa1dc4820063828d7dadb3675b7af8","Linux >= f314bfee81b1bf8e01168177b2f65f24eb8da63a < 18ae1e95f20867106a28820c208a9cec99dda861","Linux >= f314bfee81b1bf8e01168177b2f65f24eb8da63a < 82d9269f01ebfd835b6256aa17016a974cbbc647","Linux >= f314bfee81b1bf8e01168177b2f65f24eb8da63a < 4b177911eb9f799e9841c2f87c75b08cb112757a","Linux >= f314bfee81b1bf8e01168177b2f65f24eb8da63a < 976df67f463db1fddaf2a32fb04f57ad2891a23d","Linux 5.19"],"ssvc":{"exploitation":"none","automatable":"no","technicalImpact":"partial","timestamp":"2026-11-06T17:04:58.692495Z"},"published":"2026-09-04","updated":"2026-11-06","sourceUpdated":"2026-11-06T17:05:56.646Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-80904","references":[{"url":"https://git.kernel.org/stable/c/a808aadff634c7a408b2ab84d5919e9a741fdb5b"},{"url":"https://git.kernel.org/stable/c/06c2a53604fa1dc4820063828d7dadb3675b7af8"},{"url":"https://git.kernel.org/stable/c/18ae1e95f20867106a28820c208a9cec99dda861"},{"url":"https://git.kernel.org/stable/c/82d9269f01ebfd835b6256aa17016a974cbbc647"},{"url":"https://git.kernel.org/stable/c/4b177911eb9f799e9841c2f87c75b08cb112757a"},{"url":"https://git.kernel.org/stable/c/976df67f463db1fddaf2a32fb04f57ad2891a23d"}],"tags":["cve.org"],"epss":0.00161,"epssPercentile":0.0529,"ingestedAt":"2026-11-06T18:00:12.527Z","slug":"CVE-2026-80904","body":"## Overview\n\nIn the Linux kernel, the following vulnerability has been resolved:\n\nnet/tls: Fail tls_sw_splice_read() after a failed async decrypt\n\nWhen an async decrypt fails, tls_decrypt_done() records the error in\nctx->async_wait.err and calls tls_err_abort(), which stores it in\nsk_err. tls_sw_recvmsg() and tls_sw_read_sock() each read\nasync_wait.err once they hold the reader lock and fail the call: a\nrecord that did not authenticate breaks the connection.\n\ntls_sw_splice_read() has no such check, and sk_err does not stand in\nfor one. tls_rx_rec_wait() tests sk_err only inside the loop it\nskips whenever a record is already parsed, and the first reader to\nreach sock_error() clears it, while async_wait.err persists. A\nsplice therefore keeps delivering records on a connection that\nrecvmsg() and read_sock() refuse to read.\n\nRead async_wait.err in tls_sw_splice_read() as the other two readers\ndo.\n\n## Affected\n\n- `Linux >= f314bfee81b1bf8e01168177b2f65f24eb8da63a < a808aadff634c7a408b2ab84d5919e9a741fdb5b`\n- `Linux >= f314bfee81b1bf8e01168177b2f65f24eb8da63a < 06c2a53604fa1dc4820063828d7dadb3675b7af8`\n- `Linux >= f314bfee81b1bf8e01168177b2f65f24eb8da63a < 18ae1e95f20867106a28820c208a9cec99dda861`\n- `Linux >= f314bfee81b1bf8e01168177b2f65f24eb8da63a < 82d9269f01ebfd835b6256aa17016a974cbbc647`\n- `Linux >= f314bfee81b1bf8e01168177b2f65f24eb8da63a < 4b177911eb9f799e9841c2f87c75b08cb112757a`\n- `Linux >= f314bfee81b1bf8e01168177b2f65f24eb8da63a < 976df67f463db1fddaf2a32fb04f57ad2891a23d`\n- `Linux 5.19`\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"sunlit","depthScore":3,"depthScoreParts":{"impact":2.8,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}