CVE-2023-53233
Gravedad:
Pendiente de análisis
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
15/09/2025
Última modificación:
15/09/2025
Descripción
*** Pendiente de traducción *** In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
net/smc: fix deadlock triggered by cancel_delayed_work_syn()<br />
<br />
The following LOCKDEP was detected:<br />
Workqueue: events smc_lgr_free_work [smc]<br />
WARNING: possible circular locking dependency detected<br />
6.1.0-20221027.rc2.git8.56bc5b569087.300.fc36.s390x+debug #1 Not tainted<br />
------------------------------------------------------<br />
kworker/3:0/176251 is trying to acquire lock:<br />
00000000f1467148 ((wq_completion)smc_tx_wq-00000000#2){+.+.}-{0:0},<br />
at: __flush_workqueue+0x7a/0x4f0<br />
but task is already holding lock:<br />
0000037fffe97dc8 ((work_completion)(&(&lgr->free_work)->work)){+.+.}-{0:0},<br />
at: process_one_work+0x232/0x730<br />
which lock already depends on the new lock.<br />
the existing dependency chain (in reverse order) is:<br />
-> #4 ((work_completion)(&(&lgr->free_work)->work)){+.+.}-{0:0}:<br />
__lock_acquire+0x58e/0xbd8<br />
lock_acquire.part.0+0xe2/0x248<br />
lock_acquire+0xac/0x1c8<br />
__flush_work+0x76/0xf0<br />
__cancel_work_timer+0x170/0x220<br />
__smc_lgr_terminate.part.0+0x34/0x1c0 [smc]<br />
smc_connect_rdma+0x15e/0x418 [smc]<br />
__smc_connect+0x234/0x480 [smc]<br />
smc_connect+0x1d6/0x230 [smc]<br />
__sys_connect+0x90/0xc0<br />
__do_sys_socketcall+0x186/0x370<br />
__do_syscall+0x1da/0x208<br />
system_call+0x82/0xb0<br />
-> #3 (smc_client_lgr_pending){+.+.}-{3:3}:<br />
__lock_acquire+0x58e/0xbd8<br />
lock_acquire.part.0+0xe2/0x248<br />
lock_acquire+0xac/0x1c8<br />
__mutex_lock+0x96/0x8e8<br />
mutex_lock_nested+0x32/0x40<br />
smc_connect_rdma+0xa4/0x418 [smc]<br />
__smc_connect+0x234/0x480 [smc]<br />
smc_connect+0x1d6/0x230 [smc]<br />
__sys_connect+0x90/0xc0<br />
__do_sys_socketcall+0x186/0x370<br />
__do_syscall+0x1da/0x208<br />
system_call+0x82/0xb0<br />
-> #2 (sk_lock-AF_SMC){+.+.}-{0:0}:<br />
__lock_acquire+0x58e/0xbd8<br />
lock_acquire.part.0+0xe2/0x248<br />
lock_acquire+0xac/0x1c8<br />
lock_sock_nested+0x46/0xa8<br />
smc_tx_work+0x34/0x50 [smc]<br />
process_one_work+0x30c/0x730<br />
worker_thread+0x62/0x420<br />
kthread+0x138/0x150<br />
__ret_from_fork+0x3c/0x58<br />
ret_from_fork+0xa/0x40<br />
-> #1 ((work_completion)(&(&smc->conn.tx_work)->work)){+.+.}-{0:0}:<br />
__lock_acquire+0x58e/0xbd8<br />
lock_acquire.part.0+0xe2/0x248<br />
lock_acquire+0xac/0x1c8<br />
process_one_work+0x2bc/0x730<br />
worker_thread+0x62/0x420<br />
kthread+0x138/0x150<br />
__ret_from_fork+0x3c/0x58<br />
ret_from_fork+0xa/0x40<br />
-> #0 ((wq_completion)smc_tx_wq-00000000#2){+.+.}-{0:0}:<br />
check_prev_add+0xd8/0xe88<br />
validate_chain+0x70c/0xb20<br />
__lock_acquire+0x58e/0xbd8<br />
lock_acquire.part.0+0xe2/0x248<br />
lock_acquire+0xac/0x1c8<br />
__flush_workqueue+0xaa/0x4f0<br />
drain_workqueue+0xaa/0x158<br />
destroy_workqueue+0x44/0x2d8<br />
smc_lgr_free+0x9e/0xf8 [smc]<br />
process_one_work+0x30c/0x730<br />
worker_thread+0x62/0x420<br />
kthread+0x138/0x150<br />
__ret_from_fork+0x3c/0x58<br />
ret_from_fork+0xa/0x40<br />
other info that might help us debug this:<br />
Chain exists of:<br />
(wq_completion)smc_tx_wq-00000000#2<br />
--> smc_client_lgr_pending<br />
--> (work_completion)(&(&lgr->free_work)->work)<br />
Possible unsafe locking scenario:<br />
CPU0 CPU1<br />
---- ----<br />
lock((work_completion)(&(&lgr->free_work)->work));<br />
lock(smc_client_lgr_pending);<br />
lock((work_completion)<br />
(&(&lgr->free_work)->work));<br />
lock((wq_completion)smc_tx_wq-00000000#2);<br />
*** DEADLOCK ***<br />
2 locks held by kworker/3:0/176251:<br />
#0: 0000000080183548<br />
((wq_completion)events){+.+.}-{0:0},<br />
at: process_one_work+0x232/0x730<br />
#1: 0000037fffe97dc8<br />
((work_completion)<br />
(&(&lgr->free_work)->work)){+.+.}-{0:0},<br />
at: process_one_work+0x232/0x730<br />
stack backtr<br />
---truncated---
Impacto
Referencias a soluciones, herramientas e información
- https://git.kernel.org/stable/c/13085e1b5cab8ad802904d72e6a6dae85ae0cd20
- https://git.kernel.org/stable/c/3517584cf1b35bd02f4a90267ddf9dcf17bd9c87
- https://git.kernel.org/stable/c/9708efad9ba5095b9bb7916e11a135b3bd66c071
- https://git.kernel.org/stable/c/b615238e5bc01e13dc0610febddc1ca99bab1df6
- https://git.kernel.org/stable/c/c9ca2257150272df1b8d9ebe5059197ffea6e913



