Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

CVE-2026-74692

Gravedad:
Pendiente de análisis
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
22/08/2026
Última modificación:
22/08/2026

Descripción

*** Pendiente de traducción *** In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> net/smc: fix TOCTOU race between smc_listen_out() and listener close<br /> <br /> smc_listen_out() reads lsmc-&gt;sk.sk_state without the listener lock,<br /> then acquires lock_sock_nested() only after the check passes. This<br /> opens a window where smc_close_active() can transition the listener<br /> to SMC_CLOSED, call smc_close_cleanup_listen() to drain the accept<br /> queue, and release the lock, all between the lockless read and the<br /> delayed lock acquisition:<br /> <br /> smc_listen_work (smc_hs_wq) smc_close_active()<br /> ------------------------------- -------------------------<br /> release_sock(child)<br /> if (sk_state == SMC_LISTEN) TRUE<br /> lock_sock(listener)<br /> sk_state = SMC_CLOSED<br /> smc_close_cleanup_listen()<br /> release_sock(listener)<br /> flush_work(tcp_listen_work)<br /> lock_sock_nested(listener)<br /> smc_accept_enqueue(listener, child) /* child enqueued on dead listener */<br /> <br /> smc_close_active() flushes only tcp_listen_work. Work items already<br /> dispatched onto smc_hs_wq for the CLC handshake continue running<br /> unguarded. smc_accept_enqueue() takes a sock_hold() on the child that<br /> is never released, so the child smc_sock, its clcsock, and the<br /> reference all leak. A remote peer that opens TCP connections while the<br /> server calls close() can exhaust kernel memory.<br /> <br /> Move lock_sock_nested() to before the sk_state check so that the test<br /> and the enqueue are atomic under the listener lock.

Impacto