CVE-2023-54318: net/smc: use smc_lgr_list.lock to protect smc_lgr_list.list iterate in smcr_port_add
In the Linux kernel, the following vulnerability has been resolved:
net/smc: use smclgrlist.lock to protect smclgrlist.list iterate in smcrportadd
While doing smcrportadd, there maybe linkgroup add into or delete from smclgrlist.list at the same time, which may result kernel crash. So, use smclgrlist.lock to protect smclgrlist.list iterate in smcrportadd.
The crash calltrace show below: BUG: kernel NULL pointer dereference, address: 0000000000000000 PGD 0 P4D 0 Oops: 0000 [#1] SMP NOPTI CPU: 0 PID: 559726 Comm: kworker/0:92 Kdump: loaded Tainted: G Hardware name: Alibaba Cloud Alibaba Cloud ECS, BIOS 449e491 04/01/2014 Workqueue: events smcibporteventwork [smc] RIP: 0010:smcrportadd+0xa6/0xf0 [smc] RSP: 0000:ffffa5a2c8f67de0 EFLAGS: 00010297 RAX: 0000000000000001 RBX: ffff9935e0650000 RCX: 0000000000000000 RDX: 0000000000000010 RSI: ffff9935e0654290 RDI: ffff9935c8560000 RBP: 0000000000000000 R08: 0000000000000000 R09: ffff9934c0401918 R10: 0000000000000000 R11: ffffffffb4a5c278 R12: ffff99364029aae4 R13: ffff99364029aa00 R14: 00000000ffffffed R15: ffff99364029ab08 FS: 0000000000000000(0000) GS:ffff994380600000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000000 CR3: 0000000f06a10003 CR4: 0000000002770ef0 PKRU: 55555554 Call Trace: smcibporteventwork+0x18f/0x380 [smc] processonework+0x19b/0x340 workerthread+0x30/0x370 ? processonework+0x340/0x340 kthread+0x114/0x130 ? kthreadcancelwork+0x50/0x50 retfromfork+0x1f/0x30
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Configuration
In net/smc code paths such as smcr_port_add, use smc_lgr_list.lock to protect/synchronize access to smc_lgr_list.list during iteration, preventing concurrent linkgroup add/delete from smc_ib_port_event_work from causing a kernel crash.
Linux kernel module smc (net/smc) Use smc_lgr_list.lock to protect smc_lgr_list.list iteration = Protected iteration with smc_lgr_list.lock
Event History
Frequently Asked Questions
What is the severity of CVE-2023-54318?
CVE-2023-54318 is classified as a medium severity vulnerability in the Linux kernel.
How do I fix CVE-2023-54318?
To fix CVE-2023-54318, upgrade to the patched version of the Linux kernel that contains the resolutions for this vulnerability.
What is the impact of CVE-2023-54318?
The impact of CVE-2023-54318 can result in potential kernel instability due to race conditions during simultaneous linkgroup modifications.
Which versions of the Linux kernel are affected by CVE-2023-54318?
CVE-2023-54318 affects several versions of the Linux kernel prior to the patch, though specific version details may vary.
Is CVE-2023-54318 related to any specific feature in the Linux kernel?
Yes, CVE-2023-54318 is related to the socket memory control (SMC) feature in the Linux kernel.