CVE-2024-50098: scsi: ufs: core: Set SDEV_OFFLINE when UFS is shut down
In the Linux kernel, the following vulnerability has been resolved:
scsi: ufs: core: Set SDEVOFFLINE when UFS is shut down
There is a history of deadlock if reboot is performed at the beginning of booting. SDEVQUIESCE was set for all LU's scsidevices by UFS shutdown, and at that time the audio driver was waiting on blkmqsubmitbio() holding a mutexlock while reading the fw binary. After that, a deadlock issue occurred while audio driver shutdown was waiting for mutexunlock of blkmqsubmitbio(). To solve this, set SDEVOFFLINE for all LUs except WLUN, so that any I/O that comes down after a UFS shutdown will return an error.
[ 31.907781]I[0: swapper/0: 0] 1 130705007 1651079834 11289729804 0 D( 2) 3 ffffff882e208000 init [deviceshutdown] [ 31.907793]I[0: swapper/0: 0] Mutex: 0xffffff8849a2b8b0: owner[0xffffff882e28cb00 kworker/6:0 :49] [ 31.907806]I[0: swapper/0: 0] Call trace: [ 31.907810]I[0: swapper/0: 0] switchto+0x174/0x338 [ 31.907819]I[0: swapper/0: 0] schedule+0x5ec/0x9cc [ 31.907826]I[0: swapper/0: 0] schedule+0x7c/0xe8 [ 31.907834]I[0: swapper/0: 0] schedulepreemptdisabled+0x24/0x40 [ 31.907842]I[0: swapper/0: 0] mutexlock+0x408/0xdac [ 31.907849]I[0: swapper/0: 0] mutexlockslowpath+0x14/0x24 [ 31.907858]I[0: swapper/0: 0] mutexlock+0x40/0xec [ 31.907866]I[0: swapper/0: 0] deviceshutdown+0x108/0x280 [ 31.907875]I[0: swapper/0: 0] kernelrestart+0x4c/0x11c [ 31.907883]I[0: swapper/0: 0] arm64sysreboot+0x15c/0x280 [ 31.907890]I[0: swapper/0: 0] invokesyscall+0x70/0x158 [ 31.907899]I[0: swapper/0: 0] el0svccommon+0xb4/0xf4 [ 31.907909]I[0: swapper/0: 0] doel0svc+0x2c/0xb0 [ 31.907918]I[0: swapper/0: 0] el0svc+0x34/0xe0 [ 31.907928]I[0: swapper/0: 0] el0t64synchandler+0x68/0xb4 [ 31.907937]I[0: swapper/0: 0] el0t64sync+0x1a0/0x1a4
[ 31.908774]I[0: swapper/0: 0] 49 0 11960702 11236868007 0 D( 2) 6 ffffff882e28cb00 kworker/6:0 [bioqueueenter] [ 31.908783]I[0: swapper/0: 0] Call trace: [ 31.908788]I[0: swapper/0: 0] switchto+0x174/0x338 [ 31.908796]I[0: swapper/0: 0] schedule+0x5ec/0x9cc [ 31.908803]I[0: swapper/0: 0] schedule+0x7c/0xe8 [ 31.908811]I[0: swapper/0: 0] bioqueueenter+0xb8/0x178 [ 31.908818]I[0: swapper/0: 0] blkmqsubmitbio+0x194/0x67c [ 31.908827]I[0: swapper/0: 0] submitbio+0xb8/0x19c
Other sources
This CVE was automatically created from a reference found in an email or other text. If you are reading this, then this CVE entry is probably erroneous, since this text should be replaced by the official CVE description automatically.
— Launchpad
Affected Software
Remediation
Event History
Frequently Asked Questions
What is the severity of CVE-2024-50098?
CVE-2024-50098 is classified as a critical vulnerability due to the potential for deadlocks during system boot.
How do I fix CVE-2024-50098?
To fix CVE-2024-50098, you should update the Linux kernel to a version where the vulnerability has been patched.
Which Linux kernel versions are affected by CVE-2024-50098?
CVE-2024-50098 affects multiple Linux kernel versions between 5.14 and 6.1.114, and also 6.2 to 6.6.58 and 6.7 to 6.11.5.
What are the consequences of CVE-2024-50098 if not addressed?
If not addressed, CVE-2024-50098 could lead to system deadlock situations during the boot process.
Has CVE-2024-50098 been resolved?
Yes, CVE-2024-50098 has been resolved in subsequent kernel updates after the vulnerability was identified.