Bug 2393511 (CVE-2025-39682) - CVE-2025-39682 kernel: tls: fix handling of zero-length records on the rx_list
Summary: CVE-2025-39682 kernel: tls: fix handling of zero-length records on the rx_list
Keywords:
Status: NEW
Alias: CVE-2025-39682
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Product Security DevOps Team
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2025-09-05 18:03 UTC by OSIDB Bzimport
Modified: 2025-10-16 08:15 UTC (History)
0 users

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2025:16880 0 None None None 2025-09-29 05:05:44 UTC
Red Hat Product Errata RHSA-2025:16904 0 None None None 2025-09-29 07:48:02 UTC

Description OSIDB Bzimport 2025-09-05 18:03:20 UTC
In the Linux kernel, the following vulnerability has been resolved:

tls: fix handling of zero-length records on the rx_list

Each recvmsg() call must process either
 - only contiguous DATA records (any number of them)
 - one non-DATA record

If the next record has different type than what has already been
processed we break out of the main processing loop. If the record
has already been decrypted (which may be the case for TLS 1.3 where
we don't know type until decryption) we queue the pending record
to the rx_list. Next recvmsg() will pick it up from there.

Queuing the skb to rx_list after zero-copy decrypt is not possible,
since in that case we decrypted directly to the user space buffer,
and we don't have an skb to queue (darg.skb points to the ciphertext
skb for access to metadata like length).

Only data records are allowed zero-copy, and we break the processing
loop after each non-data record. So we should never zero-copy and
then find out that the record type has changed. The corner case
we missed is when the initial record comes from rx_list, and it's
zero length.

Comment 6 errata-xmlrpc 2025-09-29 05:05:43 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 9

Via RHSA-2025:16880 https://access.redhat.com/errata/RHSA-2025:16880

Comment 7 errata-xmlrpc 2025-09-29 07:48:01 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 10

Via RHSA-2025:16904 https://access.redhat.com/errata/RHSA-2025:16904


Note You need to log in before you can comment on or make changes to this bug.