CVE-2023-52767

tls: fix NULL deref on tls_sw_splice_eof() with empty record

State
Published
Severity
Not scored
Published
May 21, 2024
Updated
May 11, 2026
Reserved
May 21, 2024

Read the record on cve.org

Description

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

tls: fix NULL deref on tls_sw_splice_eof() with empty record

syzkaller discovered that if tls_sw_splice_eof() is executed as part of sendfile() when the plaintext/ciphertext sk_msg are empty, the send path gets confused because the empty ciphertext buffer does not have enough space for the encryption overhead. This causes tls_push_record() to go on the `split = true` path (which is only supposed to be used when interacting with an attached BPF program), and then get further confused and hit the tls_merge_open_record() path, which then assumes that there must be at least one populated buffer element, leading to a NULL deref.

It is possible to have empty plaintext/ciphertext buffers if we previously bailed from tls_sw_sendmsg_locked() via the tls_trim_both_msgs() path. tls_sw_push_pending_record() already handles this case correctly; let's do the same check in tls_sw_splice_eof().

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 5ad627faed136089e27bcd15e0c33760e575c8c3 to before 944900fe2736c07288efe2d9394db4d3ca23f2c9Affected
  • df720d288dbb1793e82b6ccbfc670ec871e9def4 to before 2214e2bb5489145aba944874d0ee1652a0a63dc8Affected
  • df720d288dbb1793e82b6ccbfc670ec871e9def4 to before 53f2cb491b500897a619ff6abd72f565933760f0Affected
LinuxLinux
  • 6.5Affected
  • before 6.5Not affected
  • 6.6.4 through 6.6.*Not affected
  • 6.7 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.