CVE-2024-38596: af_unix: Fix data races in unix_release_sock/unix_stream_sendmsg
In the Linux kernel, the following vulnerability has been resolved:
afunix: Fix data races in unixreleasesock/unixstreamsendmsg
A data-race condition has been identified in afunix. In one data path, the write function unixreleasesock() atomically writes to sk->skshutdown using WRITEONCE. However, on the reader side, unixstreamsendmsg() does not read it atomically. Consequently, this issue is causing the following KCSAN splat to occur:
BUG: KCSAN: data-race in unixreleasesock / unixstreamsendmsg
write (marked) to 0xffff88867256ddbb of 1 bytes by task 7270 on cpu 28: unixreleasesock (net/unix/afunix.c:640) unixrelease (net/unix/afunix.c:1050) sockclose (net/socket.c:659 net/socket.c:1421) fput (fs/filetable.c:422) fputsync (fs/filetable.c:508) sesysclose (fs/open.c:1559 fs/open.c:1541) x64sysclose (fs/open.c:1541) x64syscall (arch/x86/entry/syscall64.c:33) dosyscall64 (arch/x86/entry/common.c:?) entrySYSCALL64afterhwframe (arch/x86/entry/entry64.S:130)
read to 0xffff88867256ddbb of 1 bytes by task 989 on cpu 14: unixstreamsendmsg (net/unix/afunix.c:2273) socksendmsg (net/socket.c:730 net/socket.c:745) syssendmsg (net/socket.c:2584) syssendmmsg (net/socket.c:2638 net/socket.c:2724) x64syssendmmsg (net/socket.c:2753 net/socket.c:2750 net/socket.c:2750) x64syscall (arch/x86/entry/syscall64.c:33) dosyscall64 (arch/x86/entry/common.c:?) entrySYSCALL64afterhwframe (arch/x86/entry/entry64.S:130)
value changed: 0x01 -> 0x03
The line numbers are related to commit dd5a440a31fa ("Linux 6.9-rc7").
Commit e1d09c2c2f57 ("afunix: Fix data races around sk->skshutdown.") addressed a comparable issue in the past regarding sk->skshutdown. However, it overlooked resolving this particular data path. This patch only offending unixstreamsendmsg() function, since the other reads seem to be protected by unixstatelock() as discussed in
Other sources
In the Linux kernel, the following vulnerability has been resolved:
afunix: Fix data races in unixreleasesock/unixstreamsendmsg
The Linux kernel CVE team has assigned CVE-2024-38596 to this issue.
Upstream advisory: https://lore.kernel.org/linux-cve-announce/2024061956-CVE-2024-38596-f660@gregkh/T
— Red Hat
Linux Kernel is vulnerable to a denial of service, caused by a race condition in unixreleasesock/unixstreamsendmsg. A local authenticated attacker could exploit this vulnerability to cause a denial of service.
— IBM
Affected Software
Remediation
Event History
Frequently Asked Questions
What is the severity of CVE-2024-38596?
CVE-2024-38596 has been classified as medium severity due to the potential for data races in the Linux kernel.
How do I fix CVE-2024-38596?
To fix CVE-2024-38596, upgrade the kernel to a version that is 4.19.316 or later, 5.4.278 or later, 5.10.219 or later, 5.15.161 or later, 6.1.93 or later, or 6.6.33 or later.
What systems are affected by CVE-2024-38596?
CVE-2024-38596 affects various Linux kernel versions, primarily those under Red Hat and Debian distributions.
Was CVE-2024-38596 publicly disclosed?
Yes, CVE-2024-38596 was publicly disclosed and is documented in security advisories related to the Linux kernel.
Can CVE-2024-38596 lead to system crashes?
Yes, if exploited, CVE-2024-38596 could potentially lead to system instability or crashes due to the identified data race condition.