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

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

When an async decrypt fails, tls_decrypt_done() records the error in
ctx->async_wait.err and calls tls_err_abort(), which stores it in
sk_err. tls_sw_recvmsg() and tls_sw_read_sock() each read
async_wait.err once they hold the reader lock and fail the call: a
record that did not authenticate breaks the connection.

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

Read async_wait.err in tls_sw_splice_read() as the other two readers
do.
Published: 2026-09-04
Score: n/a
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service
Action: Apply Patch
AI Analysis

Impact

In the Linux kernel, the TLS subsystem fails to propagate an async decryption error into the splice read path. When a decrypt operation fails, the kernel records the error but only the receive functions check that error before reading. The splice function does not perform this check, so a splice can continue to deliver partial or unauthenticated records over a connection that other TLS readers refuse. This flaw allows an attacker to keep an otherwise broken TLS connection active, potentially causing resource exhaustion or enabling the transmission of data that should be rejected, which leads to denial of service and possible information disclosure.

Affected Systems

Vendors: Linux kernel. Products: Linux kernel. No specific affected versions are listed in the CNA data.

Risk and Exploitability

The CVSS score and EPSS are not available, and the vulnerability is not listed in the CISA KEV catalog. Based on the description, the likely attack vector involves a remote attacker who can manipulate TLS traffic to trigger a decrypt error. The flaw relies on a kernel error that is normally reported via sk_err, but the splice code ignores this signal. The risk is therefore moderate to high in environments that use the splice path for TLS connections. The absence of a public exploit yet does not preclude potential use in custom attacks.

Generated by OpenCVE AI on September 4, 2026 at 19:30 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update the Linux kernel to a version that incorporates the fix for CVE-2026-80904 or backport the relevant commit from the kernel repository.
  • Ensure that TLS connections are monitored for decrypt errors and that any connection exhibiting such errors is immediately reset to prevent further data delivery.
  • Apply patching best practices: subscribe to kernel announcements, test the new kernel in staging, and upgrade production systems as soon as the patch is available.

Generated by OpenCVE AI on September 4, 2026 at 19:30 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4777-1 linux security update
Debian DLA Debian DLA DLA-4788-1 linux-6.12 security update
History

Fri, 04 Sep 2026 20:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-667

Fri, 04 Sep 2026 17:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: net/tls: Fail tls_sw_splice_read() after a failed async decrypt When an async decrypt fails, tls_decrypt_done() records the error in ctx->async_wait.err and calls tls_err_abort(), which stores it in sk_err. tls_sw_recvmsg() and tls_sw_read_sock() each read async_wait.err once they hold the reader lock and fail the call: a record that did not authenticate breaks the connection. tls_sw_splice_read() has no such check, and sk_err does not stand in for one. tls_rx_rec_wait() tests sk_err only inside the loop it skips whenever a record is already parsed, and the first reader to reach sock_error() clears it, while async_wait.err persists. A splice therefore keeps delivering records on a connection that recvmsg() and read_sock() refuse to read. Read async_wait.err in tls_sw_splice_read() as the other two readers do.
Title net/tls: Fail tls_sw_splice_read() after a failed async decrypt
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-09-04T17:19:14.391Z

Reserved: 2026-08-26T14:34:25.800Z

Link: CVE-2026-80904

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-04T18:17:59.983

Modified: 2026-09-04T18:17:59.983

Link: CVE-2026-80904

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-04T22:00:05Z

Weaknesses