CVE-2025-68372 in Linuxinformação

Sumário

de VulDB • 21/05/2026

No kernel do Linux, a seguinte vulnerabilidade foi resolvida:

nbd: adiar a chamada de config_put em recv_work

Há um problema de UAF (Use-After-Free) em recv_work ao executar NBD_CLEAR_SOCK e NBD_CMD_RECONFIGURE: nbd_genl_connect // conf_ref=2 (connect e recv_work A) nbd_open // conf_ref=3 recv_work A concluído // conf_ref=2 NBD_CLEAR_SOCK // conf_ref=1 nbd_genl_reconfigure // conf_ref=2 (dispara recv_work B) close nbd // conf_ref=1 recv_work B config_put // conf_ref=0 atomic_dec(&config->recv_threads); -> UAF

Ou apenas executando NBD_CLEAR_SOCK: nbd_genl_connect // conf_ref=2 nbd_open // conf_ref=3 NBD_CLEAR_SOCK // conf_ref=2 close nbd nbd_release config_put // conf_ref=1 recv_work config_put // conf_ref=0 atomic_dec(&config->recv_threads); -> UAF

O commit 87aac3a80af5 ("nbd: call nbd_config_put() before notifying the waiter") moveu nbd_config_put() para ser executado antes de acordar o waiter em recv_work, a fim de garantir que nbd_start_device_ioctl() não fosse acordado enquanto nbd->task_recv ainda não tivesse sido limpo.

No entanto, em nbd_start_device_ioctl(), após ser acordado, ele chama explicitamente flush_workqueue() para garantir que todos os trabalhos atuais sejam finalizados. Portanto, não há necessidade de mover a chamada de config_put antes do wakeup.

Mova nbd_config_put() para o final de recv_work, para que a referência seja mantida durante toda a vida útil da thread do worker. Isso garante que a configuração não seja liberada enquanto recv_work ainda estiver em execução, mesmo que haja intercalação entre clear e reconfigure.

Além disso, não precisamos nos preocupar com recv_work liberando o último nbd_put (o que causaria deadlock):

caminho A (netlink com NBD_CFLAG_DESTROY_ON_DISCONNECT): connect // nbd_refs=1 (dispara recv_work) open nbd // nbd_refs=2 NBD_CLEAR_SOCK close nbd nbd_release nbd_disconnect_and_put flush_workqueue // recv_work concluído nbd_config_put nbd_put // nbd_refs=1 nbd_put // nbd_refs=0 queue_work

caminho B (netlink sem NBD_CFLAG_DESTROY_ON_DISCONNECT): connect // nbd_refs=2 (dispara recv_work) open nbd // nbd_refs=3 NBD_CLEAR_SOCK // conf_refs=2 close nbd nbd_release nbd_config_put // conf_refs=1 nbd_put // nbd_refs=2 recv_work concluído // conf_refs=0, nbd_refs=1 rmmod // nbd_refs=0

Depends-on: e2daec488c57 ("nbd: Fix hungtask when nbd_config_put")

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Responsável

Linux

Reservar

16/12/2025

Divulgação

24/12/2025

Moderação

aceite

Entrada

VDB-338167

CPE

pronto

EPSS

0.00165

KEV

não

Atividades

muito baixo

Fontes

Do you know our Splunk app?

Download it now for free!