Description
In the Linux kernel, the following vulnerability has been resolved: net/tls: Consume empty data records in tls_sw_read_sock() A peer may send a zero-length TLS application_data record; TLS 1.3 explicitly permits these as a traffic-analysis countermeasure (RFC 8446, Section 5.1). After decryption such a record has full_len == 0. tls_sw_read_sock() hands it to the read_actor, which has no payload to consume and returns zero. The loop treats a zero return as backpressure (used <= 0), requeues the skb at the head of rx_list, and stops. rx_list is serviced head-first on the next call, so the empty record is dequeued, fails the same way, and is requeued again; every later record on the connection is blocked behind it. tls_sw_recvmsg() does not stall on this: a zero-length data record copies nothing and falls through to consume_skb(). Mirror that in the read_sock() path by recognizing an empty data record before the actor runs, consuming it, and continuing.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
662fbcec32f4af6bdcf5b4006b792ebe9543d945 to < 0867b0f2513ebc1c475af9898c97f4772a68d964affected662fbcec32f4af6bdcf5b4006b792ebe9543d945 to < c6b440cf766a557b08d25f1b571b3d57d039686eaffected662fbcec32f4af6bdcf5b4006b792ebe9543d945 to < e8a4c9fc437b16aef38f86ce3275677e36924259affected662fbcec32f4af6bdcf5b4006b792ebe9543d945 to < ebc295ce343600c2d60c1e1e0c5d192080217457affected662fbcec32f4af6bdcf5b4006b792ebe9543d945 to < 3be28e2c9cd0230cb51fd4967df095273afd3848affected
Linux Linux
Default version status: affected
6.6affected0 to < 6.6unaffected6.6.145 to ≤ 6.6.*unaffected6.12.97 to ≤ 6.12.*unaffected6.18.40 to ≤ 6.18.*unaffected7.1.5 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/0867b0f2513ebc1c475af9898c97f4772a68d964 ↗
- https://git.kernel.org/stable/c/c6b440cf766a557b08d25f1b571b3d57d039686e ↗
- https://git.kernel.org/stable/c/e8a4c9fc437b16aef38f86ce3275677e36924259 ↗
- https://git.kernel.org/stable/c/ebc295ce343600c2d60c1e1e0c5d192080217457 ↗
- https://git.kernel.org/stable/c/3be28e2c9cd0230cb51fd4967df095273afd3848 ↗