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().
OS | Version | Architecture | Package | Version | Filename |
---|---|---|---|---|---|
ubuntu | 22.04 | noarch | linux-aws-6.5 | < any | UNKNOWN |
ubuntu | 22.04 | noarch | linux-azure-6.5 | < any | UNKNOWN |
ubuntu | 22.04 | noarch | linux-gcp-6.5 | < any | UNKNOWN |
ubuntu | 22.04 | noarch | linux-nvidia-6.5 | < any | UNKNOWN |
ubuntu | 22.04 | noarch | linux-oracle-6.5 | < any | UNKNOWN |
ubuntu | 22.04 | noarch | linux-starfive-6.5 | < any | UNKNOWN |
git.kernel.org/linus/53f2cb491b500897a619ff6abd72f565933760f0 (6.7-rc3)
git.kernel.org/stable/c/2214e2bb5489145aba944874d0ee1652a0a63dc8
git.kernel.org/stable/c/53f2cb491b500897a619ff6abd72f565933760f0
git.kernel.org/stable/c/944900fe2736c07288efe2d9394db4d3ca23f2c9
launchpad.net/bugs/cve/CVE-2023-52767
nvd.nist.gov/vuln/detail/CVE-2023-52767
security-tracker.debian.org/tracker/CVE-2023-52767
www.cve.org/CVERecord?id=CVE-2023-52767